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

如何避免Python在需输入int类型却输入其他数据类型时崩溃?

解决Python输入非整数导致程序崩溃的问题

当用户输入无法转换为整数的内容时,int(input())会抛出ValueError导致程序崩溃。解决这个问题的核心是捕获异常并做输入验证,同时修正原代码中的逻辑错误,以下是完整的解决方案:

修正后的代码

def summer(num):
    summed = 0
    # 遍历数字的每一位,跳过负号(如果输入负数)
    for digit in str(num):
        if digit.isdigit():
            summed += int(digit)
    print(summed)
    
    # 判断是否为5位数字
    if len(str(num)) != 5:
        print("请输入一个5位数字")
    else:
        print(*str(num), sep=", ")

# 循环获取有效整数输入
while True:
    try:
        num = int(input("Number: "))
        # 可选:限制输入为正的5位整数(避免负数或不足5位的情况)
        if not (10000 <= num <= 99999):
            print("请输入一个有效的5位正整数")
            continue
        break
    except ValueError:
        print("输入无效,请输入整数")

summer(num)

关键修复点

  • 异常捕获:用try-except块捕获ValueError,当输入无法转为整数时,提示用户重新输入,通过while True循环确保直到获得有效输入才继续。
  • 函数优化:将num作为参数传入summer函数,避免依赖全局变量,让函数逻辑更独立。
  • 删除无效判断:原代码中的if num != int是错误的(拿变量和类型比较),直接删除。
  • 兼容负数(可选):遍历数字字符时跳过非数字的负号,避免转换出错;也可以直接限制输入为5位正整数,让逻辑更严谨。

内容的提问来源于stack exchange,提问作者Yair A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:45:33