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

Python密码校验代码的while循环为何跳过if判断语句

问题原因

Python 3 中 input() 函数的返回值固定为字符串类型,你代码中预先定义的key是整数类型1057,不同数据类型的等值判断结果永远为False,这就是if判断始终被跳过的根本原因。

修复方案

  • 方案1:将用户输入的内容转换为整数类型,再和key比较
    调整后代码:
key = 1057

while True:
    # 将输入的字符串转换为整数
    inputKey = int(input("Enter your password "))
    if inputKey == key:
        print("Welcome Back!")
        break
    else:
        print("Incorrect password, Please try again.")

注意:该方案如果用户输入非数字内容会触发ValueError报错,如有需要可额外补充异常捕获逻辑适配异常输入。

  • 方案2:将预先定义的key改为字符串类型,和输入值的类型保持一致
    调整后代码:
# 把密钥定义为字符串类型
key = "1057"

while True:
    inputKey = input("Enter your password ")
    if inputKey == key:
        print("Welcome Back!")
        break
    else:
        print("Incorrect password, Please try again.")

该方案无需做类型转换,也不会因为用户输入非数字内容触发类型报错,兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:54:03