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

Python求和程序报错ValueError:无法将'finish'转为十进制整数

问题排查与解决方案

错误原因

你这段代码的核心问题有两个:

  1. 你先把输入强制转换为整数,当输入finish这个字符串时,int()函数无法将非数字字符串转为整数,直接触发ValueError;
  2. 就算转换成功,num是整数类型,永远不可能和字符串finish相等,终止逻辑完全失效。

修正后的代码

total = 0
while True:
    user_input = input('Please enter the number you want: ')
    # 先判断是否为终止指令
    if user_input == 'finish':
        print(f"Total sum: {total}")
        break
    # 尝试转换输入为整数并累加
    try:
        num = int(user_input)
        total += num
    except ValueError:
        print("Invalid input! Please enter a number or 'finish' to exit.")

关键改进点

  • 先获取原始输入字符串,优先判断终止指令,避免提前转换导致的错误;
  • 用try-except捕获转换异常,处理用户输入非数字也非finish的无效情况,让程序更健壮;
  • 使用total += num简化累加写法,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:52:02