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

Python循环输入数字遇'done'报错ValueError,如何解决?

修复循环接收数字时输入'done'触发的ValueError问题

错误原因

你的代码存在两个核心问题:

  1. 直接将用户输入转换为int类型,当输入字符串'done'时,字符串无法被解析为整数,直接抛出ValueError
  2. 即使输入有效数字,result是整数类型,和字符串'done'的比较永远不成立,break逻辑永远不会触发

修复后的代码

while True:
    user_input = input('enter a number:\n>')
    # 先判断终止条件,避免类型转换冲突
    if user_input == 'done':
        break
    # 尝试转换为整数,同时处理非数字输入的情况
    try:
        result = int(user_input)
        # 这里可以添加你需要的业务逻辑,比如打印、存储数字
        print(f"输入的数字为: {result}")
    except ValueError:
        print("请输入有效的数字,或者输入'done'结束程序")

关键修复点

  • 先接收原始输入字符串,优先判断是否为终止指令'done',跳过类型转换步骤
  • 使用try-except捕获类型转换失败的异常,处理用户输入非数字、非'done'的无效情况
  • 确保整数转换只在输入符合数字格式时执行,避免不必要的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:00:58