Python While循环问题求助:密码验证死循环及append方法疑问
问题修复方案
你的代码存在几个关键问题,直接导致了死循环、密码记录失效等问题,以下是修复方案:
核心问题梳理
tried_passcode.append()缺少必填参数,无法将尝试的密码存入列表while True无限循环中,没有添加退出逻辑(匹配成功时未终止循环),也没有更新输入(不匹配时重复使用旧的验证密码)- else语句缩进错误,不符合Python语法规范
修复后的完整代码
tried_passcode = [] name = input("whats your name? ") print("hello " + name + " ") password = input("make ur passcode: ") print("thanks") while True: # 每次循环重新获取用户输入的验证密码 password_confirmation = input("enter ur passcode: ") # 将本次尝试的密码存入列表 tried_passcode.append(password_confirmation) if password == password_confirmation: print("welcome " + name) # 密码匹配成功,退出循环 break else: # 输出错误提示及已尝试的所有密码 print(f"sorry {name}, your passcode is incorrect, you've tried: {tried_passcode}")
关键修改说明
- 修复列表追加逻辑:给
append()传入password_confirmation参数,才能将用户每次输入的密码记录到tried_passcode列表中 - 解决死循环:密码匹配成功时添加
break语句终止循环;不匹配时,每次循环都会重新获取用户输入,避免重复输出相同错误提示 - 修正缩进问题:将else语句与if语句对齐,符合Python的缩进要求
- 优化错误提示:使用f-string简化字符串拼接,同时显示已尝试的密码列表,让提示更直观
内容的提问来源于stack exchange,提问作者AntsPiano
相关产品推荐
相关产品推荐

