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

Python int转换报ValueError: invalid literal for int()空值报错如何修复

问题修复方案

错误原因

  • 触发ValueError: invalid literal for int() with base 10: ''报错的直接原因是:执行input()读取输入时,你没有输入任何内容直接按了回车,程序拿到的空字符串''无法转换为int类型。
  • 除此之外原有代码还存在逻辑错误:greatest函数的第一个判断条件写为num1 >= num2 and num1 >= num2,重复对比了num1和num2的大小,没有和num3对比,会出现num3比num1大时判断结果错误的问题。

修复后完整代码

def greatest(num1, num2, num3):
    # 修正逻辑错误,补充和num3的对比
    if num1 >= num2 and num1 >= num3:
        print("num1 is greatest")
    elif num2 >= num1 and num2 >= num3:
        print("num2 is greatest")
    else:
        print("num3 is greatest")

def get_valid_int(prompt):
    # 新增输入校验逻辑,避免空输入或非整数输入导致崩溃
    while True:
        input_content = input(prompt).strip()
        if not input_content:
            print("输入不能为空,请输入有效整数")
            continue
        try:
            return int(input_content)
        except ValueError:
            print("输入不是合法整数,请重新输入")

int1 = get_valid_int("enter a number1: ")
int2 = get_valid_int("enter a number2: ")
int3 = get_valid_int("enter a number3: ")
greatest(int1, int2, int3)

修复说明

  • 新增的get_valid_int函数会循环读取用户输入,自动过滤空值、非整数输入,直到用户输入合法内容才会继续执行后续逻辑,避免程序直接崩溃。
  • 修正了greatest函数的判断逻辑,确保三个数字的大小对比完整,输出结果正确。
  • 临时测试场景下如果不想修改代码,运行程序后在输入提示弹出时直接输入整数再按回车,不要留空也不要输入非数字内容,也可以正常运行。

内容的提问来源于stack exchange,提问作者Aryan Agarwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:45:01