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

如何在获取用户数字输入时抛出异常?列表输入异常处理求助

问题解决:输入数字时的异常处理与列表填充需求

原代码存在的问题

  • 变量名不匹配:定义了nameList却使用numList,会触发NameError
  • try/except结构错误:except必须与try直接配对,不能嵌套在if语句内部
  • 异常类型错误:需求要求输入负数时抛出ValueError,但代码错误捕获NameError
  • 逻辑漏洞:输入负数时仍会执行列表添加和计数操作,不符合“负整数不添加”的要求
  • 断言误用:在while前添加断言时,num未定义必然触发语法错误,断言需放在num赋值之后

正确实现代码

numList = []
count = 0 
while count < 5:
    try:
        num = int(input('Enter a number: '))
        if num < 0:
            # 主动抛出需求指定的ValueError
            raise ValueError("Positive integers only!")
        numList.append(num)
        count += 1
    except ValueError as e:
        print(e)

print(numList)

代码说明

  1. 变量名统一为numList,避免未定义错误
  2. 将try放入循环内部,每次输入都做异常检查
  3. 输入负数时主动用raise抛出ValueError,附带提示信息
  4. except捕获两类ValueError:用户输入非整数的情况、主动抛出的负数情况,打印提示后不执行添加列表和计数操作,继续等待有效输入
  5. 直到收集满5个正整数后退出循环,输出最终列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:25:23