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

如何修复Python代码以正确计算列表中所有偶数的和?

Python偶数求和逻辑错误

原代码(存在问题)

numbers = [1, 2, 3, 4, 5, 6]
even_sum = 0

for num in numbers:
    if num % 2:  # 错误的偶数判断条件
        even_sum += num

print("Sum of even numbers:", even_sum)

问题说明

这段代码本意是计算列表中所有偶数的和(预期结果为12,即2+4+6),但实际输出的是奇数的和9,核心问题出在偶数的判断条件上。

错误原因

在Python中,非零整数会被视为布尔值True,0会被视为False:

  • 奇数对2取余结果为1(非零,对应True),会触发if条件执行累加
  • 偶数对2取余结果为0(对应False),无法进入if块,因此被排除在求和范围外

修正方案

只需将判断条件改为验证余数是否为0,有两种常用写法:

写法1:直观判断余数等于0

numbers = [1, 2, 3, 4, 5, 6]
even_sum = 0

for num in numbers:
    if num % 2 == 0:  # 正确的偶数判断逻辑:余数为0
        even_sum += num

print("Sum of even numbers:", even_sum)

写法2:利用布尔取反简化代码

因为偶数取余结果是0(False),取反后为True,可以写成:

if not num % 2:

额外优化(可选)

如果追求代码简洁,可直接用生成器表达式一步完成求和:

numbers = [1, 2, 3, 4, 5, 6]
even_sum = sum(num for num in numbers if num % 2 == 0)
print("Sum of even numbers:", even_sum)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:22:04