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

Python执行input输入转int时触发ValueError报错原因排查

报错核心信息

运行lst.append(int(input()))语句时抛出如下错误:

ValueError: invalid literal for int() with base 10: ''

错误原因
  • 直接触发该值错误的原因:int()函数无法将空字符串转换为十进制整数。调用input()读取用户输入时,如果用户直接按下回车未输入任何有效字符,input()会返回空字符串'',将这个空字符串传入int()做类型转换时,就会抛出上述错误。
  • 你贴出的待排查代码还存在前置逻辑缺陷:循环语句for n in range(n)中,range()的参数n在循环启动前没有被定义,代码运行到这一行会优先抛出NameError: name 'n' is not defined,根本执行不到后续读取输入的逻辑,说明你实际运行的代码漏写了n的赋值部分。
修复方案
  • 提前定义循环次数变量,比如先获取用户需要录入的整数总数量,再启动录入循环。
  • 做类型转换前增加输入合法性校验,拦截空输入、非数字类输入,避免转换失败,参考实现代码如下:
lst = []
# 提前赋值循环次数
n = int(input("请输入要录入的整数个数:"))
for i in range(n):
    while True:
        input_content = input(f"请输入第{i+1}个整数:").strip()
        # 拦截空输入
        if not input_content:
            print("输入不能为空,请重新输入")
            continue
        # 校验整数合法性,兼容负整数场景
        valid_check = input_content[1:] if input_content.startswith('-') else input_content
        if not valid_check.isdigit():
            print("输入不是有效整数,请重新输入")
            continue
        lst.append(int(input_content))
        break

print("录入完成,最终列表为:", lst)

内容的提问来源于stack exchange,提问作者Saif Uddin Shrabon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:27:34