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

Python int()转换空串报ValueError: Invalid literal错误解决方法

为什么运行代码时始终触发Invalid literal for int() with base 10:''报错

报错根因

int()函数只能解析内容为合法整数的字符串,当传入空字符串""时,函数找不到可以转换的有效数字内容,就会抛出这个值错误。

代码里的具体问题

  • 错误的初始化逻辑:你原本想把玩家猜测值初始化为空,但写的answer1 = int("")是直接尝试把空字符串转整数,代码运行到这一行就会直接崩溃,你贴出的报错信息就是这行代码触发的,程序根本执行不到后面的输入交互逻辑。
  • 逻辑顺序颠倒:你在还没获取到用户输入的数值之前,就写了totalnum = num1 + answer1的计算逻辑,哪怕初始化环节没问题,这行也会因为answer1没有有效数值触发报错。

修正方案

如果要先给猜测值留空占位,不要对空字符串做int()转换,直接初始化为None即可,等拿到用户输入、完成类型转换后再做计算,修正后的基础代码如下:

num1 = 10
# 空值占位,不做提前类型转换
answer1 = None
# 先获取输入、转成整数
answer1 = int(input("enter a number: "))
# 拿到有效数值后再做计算
totalnum = num1 + answer1
print(totalnum)

如果要兼容用户误输入非数字的场景,可以加异常捕获做输入校验,避免同类转换报错:

num1 = 10
answer1 = None
# 循环校验直到拿到合法输入
while True:
    input_content = input("enter a number: ")
    try:
        answer1 = int(input_content)
        break
    except ValueError:
        print("输入无效,请输入纯整数")
totalnum = num1 + answer1
print(f"计算结果:{totalnum}")

内容的提问来源于stack exchange,提问作者Joshua Codes Shen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 11:27:15