为什么我的Python代码每次运行都显示“Incorrect”?
问题分析与修复方案
核心问题
- 类型不匹配:
input()获取的是字符串类型,而random.randrange(0,2)生成的是整数(0或1),字符串与整数直接用==比较永远不相等,导致每次都输出"Incorrect"。 - 随机数范围错误:程序提示用户选1-2,但随机数生成的是0-1,两者范围不匹配。
- 输入验证逻辑缺陷:
ry not in '1,2'的判断逻辑有误,会把逗号,也判定为有效输入,无法准确过滤无效值。
修复后的代码
import random print("Pick a number 1-2") ry = input().strip() # 先验证输入合法性 if ry not in ('1', '2'): print('Invalid Input - * 1-2 Input requested* ') else: # 将输入转为整数,与随机数类型统一 ry_num = int(ry) # 生成1到2的随机整数,匹配用户输入范围 nmr = random.randint(1, 2) if ry_num == nmr: print('congrats') else: print('Incorrect')
修改说明
- 用
strip()处理输入,避免用户输入带空格的无效内容 - 改用元组
('1', '2')做输入验证,准确判断有效输入 - 将用户输入转为整数,保证与随机数的类型一致,才能正确比较
- 替换
randrange(0,2)为randint(1,2),生成符合要求的随机数 - 调整逻辑顺序,先验证输入有效性,再执行猜数逻辑
内容的提问来源于stack exchange,提问作者user20514897
相关产品推荐
相关产品推荐

