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

Python while循环重置次数出现Statement seems to have no effect错误如何解决

问题原因
  • 第一个错误:你混淆了比较运算符和赋值运算符,f_a == 3是判断f_a是否等于3的比较语句,不会修改f_a的值,所以会收到“语句无效果”的警告,要给变量赋值应该用单等号f_a = 3
  • 第二个错误:你原代码的外层循环条件是while f_a > 0,当f_a被减到0之后,这个循环就会直接终止,哪怕你重置了f_a的值也不会重新触发密码输入流程,需要在外层再加一层无限循环,保证锁定结束后可以重新进入输入逻辑
修复后的完整代码
'''
代码功能:实现密码校验功能,连续3次输入错误后锁定15秒,锁定结束后重置尝试次数重新输入
'''
import time

# 固定密码可以提到循环外,不需要每次循环都重复赋值
set_password = "passw0rd"
# 初始可尝试次数
f_a = 3

# 外层无限循环,直到密码输入正确才退出
while True:
    while f_a > 0:
        user_input = input("Please enter your password :\n")
        if set_password == user_input:
            print("You got access !")
            # 直接退出程序,结束所有流程
            exit()
        else:
            f_a = f_a - 1
            print("Error, you have", f_a, "attempts left.")
            if f_a == 0:
                print("Time out for 15 seconds.")
                # 简化倒计时逻辑,不需要重复写15次print和sleep
                for i in range(15, -1, -1):
                    print(f"{i:02d}")
                    time.sleep(1)
                # 锁定结束后重置尝试次数
                f_a = 3
补充优化说明
  • 把固定密码set_password提到了循环外,避免每次循环都重复赋值浪费性能
  • 用for循环实现倒计时,删除了冗余的重复打印和休眠代码,后续如果要修改锁定时长只需要修改range的第一个参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:45:08