Python条件判断语句异常:输入正确答案仍返回‘wrong’
问题原因与解决方案
你的代码问题出在数据类型不匹配:input()函数获取的用户输入默认是字符串类型,而answer = 2 * 10得到的是整数类型。字符串"20"和整数20在Python中属于不同类型,直接用==比较会返回False,所以哪怕输入正确答案,也会触发wrong的输出。
修正方法有两种:
- 方法1:将用户输入转换为整数类型
print("what is 2 x 10") answer = 2 * 10 user_answer = int(input("answer: ")) # 转换为整数 if answer == user_answer: print("correct") else: print("wrong") print(f"the answer was {answer}")
- 方法2:将正确答案转换为字符串类型
print("what is 2 x 10") answer = str(2 * 10) # 转换为字符串 user_answer = input("answer: ") if answer == user_answer: print("correct") else: print("wrong") print(f"the answer was {answer}")
如果需要处理用户输入非数字的情况,可以添加异常捕获:
print("what is 2 x 10") answer = 2 * 10 try: user_answer = int(input("answer: ")) if answer == user_answer: print("correct") else: print("wrong") print(f"the answer was {answer}") except ValueError: print("请输入有效的数字答案")
内容的提问来源于stack exchange,提问作者James Lourens
相关产品推荐
相关产品推荐

