Python input()输入值与整数比较判定错误的原因及修复
问题根因
你的判断完全准确:Python里input()接收到的所有输入默认都是字符串(str)类型,你输入21时,question存的是字符串"21",和整数21做相等比较时,类型不同的值判定结果永远为False,所以一直触发错误提示。
另外你代码里写的math = 8 + 13没有在判断逻辑里用到,属于冗余代码。
修复后的代码
核心是把用户输入转成整数类型再做比较,优化后代码:
question = int(input("what is 8 + 13? ")) correct_answer = 8 + 13 if question == correct_answer: print("that is correct") else: print("That is wrong")
具体改动点
- 用
int()包裹input()的返回值,将用户输入的字符串转为整数,从根源解决类型不匹配的问题 - 把原来两个独立的
if判断改成if...else结构,逻辑更简洁,不需要重复写不等判断 - 将原本没用到的
math变量重命名为语义更明确的correct_answer,判断时直接调用该变量,后续如果修改题目里的算术式,不用同步改判断条件里的硬编码数字
内容的提问来源于stack exchange,提问作者user19505926
相关产品推荐
相关产品推荐

