You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中判断密码重试次数的if语句无法正常生效如何解决

问题原因
  • 变量计数未正确赋值:你写的number_of_attempts + 1仅为算术表达式,没有将计算结果赋值回原变量,number_of_attempts的值永远停留在初始值1,永远无法满足>3的判断条件。
  • 判断逻辑位置错误:判断尝试次数是否超标的if number_of_attempts > 3:语句放在了函数最开头,函数运行时会先执行这个判断,此时计数刚被初始化为1,永远不会触发该分支的打印逻辑。
  • 缺少循环控制结构:现有代码最多仅会让用户输入2次密码,没有循环逻辑支撑多次重试和次数判定,根本达不到3次的阈值。
  • 未定义依赖变量:函数内直接使用的password没有作为参数传入,运行时会触发未定义变量报错。
修复方案

你可以参考如下修改后的代码,通过循环控制重试流程,正确维护计数变量:

def attempt_function(correct_password):
    number_of_attempts = 1
    # 最多允许3次尝试
    while number_of_attempts <= 3:
        saidpassword = input("请输入密码:\n")
        if saidpassword == correct_password:
            print("密码正确,验证通过")
            return
        # 输错后计数+1
        number_of_attempts += 1
        print(f"密码错误,你还有{3 - number_of_attempts + 1}次尝试机会")
    # 循环结束代表3次都输错
    print("You have entered the wrong password too many times, please try again later")

调用时传入正确的密码即可,例如attempt_function("你的正确密码")。

内容的提问来源于stack exchange,提问作者Lifeable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:12:02