Python数字猜大小游戏报TypeError:str与int无法用<比较,求修复方法
修复Python猜数字游戏的类型错误问题
错误原因
input()函数获取的用户输入默认是字符串类型,而computer是randint()生成的整数类型,直接用<或==比较字符串和整数就会触发TypeError。
修复方案
把用户输入的字符串转换成整数类型,同时修正原循环逻辑的缺陷(原代码输入后player不再是False,循环会直接终止),修复后的完整代码:
import random # 无需重复导入randint,random模块已包含该方法 computer = random.randint(1, 50) # 与提示的输入范围1-50保持一致 while True: try: # 将输入转换为整数,同时处理非数字输入的异常 player = int(input("Choose number 1-50: ")) if player == computer: print("Well Done!") break # 猜对后退出循环 elif player < computer: print("Higher") else: print("Lower") except ValueError: print("请输入有效的整数!")
额外优化点
- 移除了未使用的
import string和重复的from random import randint - 调整随机数范围为1-50,和输入提示匹配
- 加入
try-except捕获非数字输入的异常,避免程序崩溃 - 改用
while True的循环逻辑,更符合猜数字游戏的持续交互需求
内容的提问来源于stack exchange,提问作者CapitalBaton
相关产品推荐
相关产品推荐

