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

Python 3:使用While循环限制密码尝试次数的问题排查

问题分析与修复方案

核心问题

  1. 内层while attempt < max_attempts循环在用户输入正确密码后,未立即终止,会继续执行剩余次数的循环,导致持续提示"try again"
  2. 密码验证逻辑嵌套混乱,外层while correct_password与内层次数循环的逻辑冲突,无法正确终止流程

修复后的代码

login = {
    "alex": "dog123"
}
correct_user = True

# 用户名验证逻辑
while correct_user:
    user = input("Please input your username ")
    if user in login:
        print(f'Hello {user}, please input your password.')
        correct_user = False
    else:
        print("Invalid user")

attempt = 0
max_attempts = 3
# 密码验证逻辑整合次数控制
while attempt < max_attempts:
    password = input(">")
    if password == login[user]:  # 直接匹配当前用户对应的密码,避免多用户密码重复时的误判
        print(f"""Welcome back {user}! 
How can i help you today?""")
        break
    else:
        attempt += 1
        if attempt < max_attempts:
            print("try again")
else:
    # 循环正常结束(尝试次数用完)时执行
    print("too many guesses!")

修复点说明

  • 移除冗余的correct_password标志,直接用次数循环控制流程,逻辑更简洁
  • 密码验证改为匹配当前用户的专属密码,原代码用password in passkey会匹配所有用户的密码,不符合单用户验证逻辑
  • 仅在还有剩余尝试次数时提示"try again",次数耗尽直接提示超限
  • 输入正确密码后立即通过break终止循环,不会继续执行后续逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:00:54