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

求助:Python中ValueError报错及except ValueError使用无效问题咨询

问题分析与修复

错误根源

  1. 输入quit试图退出循环时,代码会执行int('quit'),但quit无法转换为整数,直接触发ValueError: invalid literal for int() with base 10。
  2. 初始变量age = {}是字典类型,和字符串'quit'的比较逻辑不合理(虽然后续循环会覆盖该值,但不符合代码规范)。

修正后的代码

age = ''
while age != 'quit':
    age = input('what is your age? ')
    # 优先判断退出指令
    if age == 'quit':
        break
    # 用try-except捕获整数转换异常
    try:
        age_num = int(age)
        if age_num >= 18:
            print("You're old enough to vote.")
        else:
            print("You're not old enough to vote.")
    except ValueError:
        print("请输入有效的数字或输入'quit'退出")

关键说明

  • 先判断输入是否为quit,满足则直接退出循环,避免执行后续的整数转换操作。
  • 将整数转换逻辑放在try块中,一旦输入不是有效数字(且不是退出指令),except ValueError会捕获异常并给出提示,程序不会崩溃。

在Google Colab中测试

直接将上述代码粘贴到Colab的代码单元格,点击运行后:

  • 输入数字(如20、15),会输出对应的投票资格提示;
  • 输入非数字字符串(如abc),会触发异常提示,程序继续运行;
  • 输入quit,程序正常退出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:20:27