Python随机数字猜谜程序猜对仍提示输问题求助
问题原因
- 核心报错原因是类型不匹配且转换结果未保存
input()函数返回的内容默认是字符串类型,你执行int(input)仅临时做了类型转换,没有把转换后的整数赋值给任何变量,所以后续用来做判断的input变量还是字符串格式。Python不会自动对字符串和整数做隐式类型转换比较,比如你输入2,变量里存的是"2",和整数2比较的结果永远是False,所以永远触发输的提示。 - 还有3个不影响本次报错,但需要修正的不规范写法:
- 不要用
input作为变量名,它是Python内置的输入函数名,覆盖后后续无法再正常调用输入功能 random.randrange()返回的本身就是整数,外面包的int()属于多余操作- 提示文案让用户猜120的数字,但`random.randrange(1,5)`生成的是14的整数(randrange是左闭右开区间),逻辑和提示不符
- 不要用
修正后可正常运行的代码
import random # 修改变量名避免覆盖内置函数 user_guess = input("请输入你猜测的1-20之间的数字:") if user_guess.isdigit(): # 把转换后的整数存回变量 user_guess = int(user_guess) else: print("输入错误") exit() # 调整随机数范围和提示一致 computer = random.randrange(1, 21) print(f"电脑生成的数字是{computer}。", end = " ") if user_guess == computer: print("恭喜你赢了!") else: print("你输了。")
内容的提问来源于stack exchange,提问作者c-yap
相关产品推荐
相关产品推荐

