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

Python移除字符串特殊字符并求和报错:字符转整数失败问题排查

问题分析与解决

你的代码执行时会抛出ValueError,核心问题有两个:

  • 循环遍历的是原始带连字符的字符串,当迭代到'-'字符时,int(char)无法将连字符转换为整数,直接报错。
  • 循环内部反复执行number.replace("-","")完全无效——当前循环基于原始字符串展开,修改后的字符串不会影响正在进行的迭代过程。

修正方案一:先清理字符串再计算

先把所有连字符移除,再遍历处理每个数字字符:

number = "4009-0000-0060"
sum1 = 0
# 先移除所有连字符,得到纯数字字符串
clean_number = number.replace("-", "")
for char in clean_number:
    sum1 += int(char)
print(sum1)  # 输出结果:19

修正方案二:遍历过程中过滤非数字字符

逐个检查字符,只对数字字符进行转换累加:

number = "4009-0000-0060"
sum1 = 0
for char in number:
    # 判断当前字符是否为数字,是才进行转换累加
    if char.isdigit():
        sum1 += int(char)
print(sum1)  # 输出结果:19

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:39:55