首次输入正确密码却被判定错误,如何解决该Python问题?
修复密码验证功能的问题
你的代码存在三个核心问题,导致首次输入正确密码却被判定错误,还会引发后续逻辑异常:
错误使用
is not比较字符串
Python里is/is not是判断两个对象是否为同一内存地址,而字符串值相等并不代表是同一个对象(小字符串可能被缓存,但这是不可靠的行为)。正确的字符串值比较应该用!=。首次输入正确时无反馈
当用户第一次输入正确密码,循环条件不满足,会直接跳过循环,没有输出欢迎信息。循环内部未更新判断变量
循环里输入的新密码存在变量a中,但没有更新user_input,导致如果第二次输入错误,循环会一直基于最初的错误输入判断,陷入无限循环。
修复后的代码
password = 'letmein' user_input = input('Enter your password: ') while user_input != password: user_input = input('Password is wrong, Please try again: ') print('Welcome Back!')
代码说明
- 用
!=替代is not进行值比较,这是字符串比较的标准写法。 - 每次循环内更新
user_input为新的输入,确保下一次循环判断的是最新输入值。 - 将欢迎信息放在循环结束后,无论首次输入正确还是多次尝试后正确,都会执行输出。
内容的提问来源于stack exchange,提问作者CubGab
相关产品推荐
相关产品推荐

