Python运行sum函数出现'int' object is not iterable报错如何解决?
问题原因
Python 内置的sum()函数对入参有明确要求:
- 第一个参数必须是可迭代对象(例如列表、元组、集合等支持遍历的结构)
- 第二个为可选参数,是累加的起始值,默认值为0
你传入的第一个参数是整数10,属于不可迭代的int类型,自然触发"int" object is not iterable报错。
解决方案
方案1:调整写法适配内置sum()规则
把需要累加的数值放到可迭代对象中作为第一个参数传入即可:
# 两个数累加 total = sum([10, 20]) print(total) # 输出30 # 多层累加也可以直接利用第二个起始参数简化写法,无需嵌套sum total = sum([10, 20], 5) print(total) # 输出35 # 嵌套写法也符合语法,只是不如上面的写法简洁 total = sum([5, sum([10, 20])]) print(total) # 同样输出35
方案2:检查是否遗漏前置自定义函数代码
如果教授给出的示例确实是sum(10,20)的写法,大概率是示例中提前定义了接收两个参数的自定义sum函数,你漏跑了这部分前置代码:
# 前置自定义sum函数代码 def sum(a, b): return a + b # 之后再运行示例代码就不会报错 total=sum(10, 20) print(total) total=sum(5, sum(10, 20)) print(total)
内容的提问来源于stack exchange,提问作者user16879601
相关产品推荐
相关产品推荐

