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

为何代码运行后input_user的数据类型会自动变更?

问题解答:input_user数据类型自动改变的原因

首先咱们直接戳破核心:不是input_user的类型“自动变了”,是你后面用input()函数重新赋值时,直接把它的类型给替换了。

具体拆解一下:

  1. 你第二段代码开头写的input_user=23确实是整数类型,但这段代码在while循环里完全被架空了——循环里你先把input_user设为0,紧接着就执行了input_user=input(),这才是关键转折点。
  2. Python里的input()函数有个固定规则:不管用户输入的是数字、字母还是乱码,它都会返回一个字符串(str类型)。哪怕你输入的是23,input()给你的也是字符串"23",不是整数23。
  3. 所以当你执行input_user = input()后,原本的整数类型就被字符串覆盖了,这也导致后面你拿字符串和整数randomnumber比较、最后拼接字符串和整数时,都会触发报错。

快速修复方案:

如果要把用户输入当作整数处理,必须手动把input()的返回值转成整数,修改后的代码可以是这样:

import random
randomnumber = random.randrange(0, 100)
print(randomnumber)

while True:
    print("enter number")
    # 把输入内容转为整数类型
    input_user = int(input())
    if input_user < randomnumber:
        print("very less")
    elif input_user > randomnumber:
        print("very big")
    else:
        # 用f-string拼接更稳妥,避免类型报错
        print(f"correct : {randomnumber}")
        break  # 猜对就退出循环

额外小提醒:

  • 可以加个try-except块捕获用户输入非数字的情况,避免程序直接崩溃;
  • 第二段代码里初始的input_user=23其实没用,因为循环会立刻覆盖它,完全可以删掉。

内容的提问来源于stack exchange,提问作者HARSH SINGH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:16:16