使用Python if else制作数学测验时if条件满足仍触发else分支
Python数学测验代码问题排查
问题根因
核心原因为数据类型不匹配:
input()方法返回的用户输入始终为字符串类型,代码中user_answer为字符串格式的数字(例如用户输入12,变量实际存储值为"12")real_answer是两个整数相加得到的整型数值,Python中不同类型变量做相等判断时,字面量相同的字符串和整型会被判定为不相等,因此if条件永远不成立,只会执行else分支代码。
修复方案
将用户输入的字符串转换为整型即可,修改对应代码行:
# 原代码 user_answer = input("Your answer here: ") # 替换为 user_answer = int(input("Your answer here: "))
完整修正代码
import random num1 = random.randint(1,20) num2 = random.randint(1,20) print(num1,'+',num2) user_answer = int(input("Your answer here: ")) real_answer = num1+num2 print(real_answer, user_answer) if user_answer == real_answer: print("Yes") else: print("no")
内容的提问来源于stack exchange,提问作者hawk19
相关产品推荐
相关产品推荐

