Python用for循环计算0-100偶数和报int不可迭代错误如何解决
错误原因
- 核心报错点:
sum()函数要求入参必须是可迭代对象(比如列表、元组、range序列等),你代码中传给sum()的i是单个整数,不属于可迭代对象,直接触发了类型错误。 - 额外逻辑漏洞:你把
total = 0写在了for循环内部,每次循环都会重置累加值,就算修复sum的调用问题,也无法得到正确的[0,100]偶数总和。
修复方案
方案1:循环累加(适合初学者理解执行逻辑)
将total的初始化移到循环外部,遇到偶数时直接累加到total即可,不需要调用sum函数:
total = 0 for i in range(0, 101): if i % 2 == 0: total += i print(total)
方案2:极简写法(利用range特性直接调用sum)
range支持设置步长参数,直接生成0到100范围内的所有偶数序列,传给sum函数就能直接得到结果:
# range参数规则:range(起始值, 结束值(不包含), 步长) print(sum(range(0, 101, 2)))
两种方案运行后输出结果均为2550,符合需求。
内容的提问来源于stack exchange,提问作者AndrewGLeong
相关产品推荐
相关产品推荐

