You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python随机数字猜谜程序猜对仍提示输问题求助

问题原因

  • 核心报错原因是类型不匹配且转换结果未保存
    input()函数返回的内容默认是字符串类型,你执行int(input)仅临时做了类型转换,没有把转换后的整数赋值给任何变量,所以后续用来做判断的input变量还是字符串格式。Python不会自动对字符串和整数做隐式类型转换比较,比如你输入2,变量里存的是"2",和整数2比较的结果永远是False,所以永远触发输的提示。
  • 还有3个不影响本次报错,但需要修正的不规范写法:
    1. 不要用input作为变量名,它是Python内置的输入函数名,覆盖后后续无法再正常调用输入功能
    2. random.randrange()返回的本身就是整数,外面包的int()属于多余操作
    3. 提示文案让用户猜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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:15:00