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

代码中Sum += 1报语法错误,求统计列表偶数的正确实现方法

搞定统计列表偶数数量的代码问题

嘿,先看看你原代码里的几个明显问题:

  1. 语法错误:return Sum += 1 完全不合法哦——return 后面不能直接跟赋值操作,而且你这逻辑一碰到第一个偶数就直接返回了,根本没法统计所有符合条件的数。
  2. 漏了输入类型检查:题目要求如果输入不是列表直接返回0,但你没做这个判断,会导致非列表输入直接报错。
  3. 没处理非整数元素:题目说列表里元素可以是任意类型,你直接对所有元素用 x%2,要是碰到字符串、字典这类元素,直接就抛出异常了。

下面给你两种靠谱的实现方式,完全符合需求:

基础易懂版

def countEvens(listOfInts):
    '''
    - 返回一个整数值,表示listOfInts中存在的偶数数量。
    - 若listOfInts不是列表类型或其中无偶数,返回0。
    - 注意:listOfInts中的元素可以是任意数据类型。
    '''
    # 先确认输入是列表,不是的话直接返回0
    if not isinstance(listOfInts, list):
        return 0
    
    count = 0
    for item in listOfInts:
        # 先过滤出整数类型的元素,避免报错
        if isinstance(item, int):
            # 判断是否是偶数,是就计数+1
            if item % 2 == 0:
                count += 1
    # 遍历完所有元素后返回总计数
    return count

简洁高效版(用生成器表达式)

如果你喜欢更紧凑的代码,这个版本同样健壮,效率也不错:

def countEvens(listOfInts):
    '''
    - 返回一个整数值,表示listOfInts中存在的偶数数量。
    - 若listOfInts不是列表类型或其中无偶数,返回0。
    - 注意:listOfInts中的元素可以是任意数据类型。
    '''
    if not isinstance(listOfInts, list):
        return 0
    # 用生成器遍历元素,符合条件就生成1,最后sum求和得到总数
    return sum(1 for item in listOfInts if isinstance(item, int) and item % 2 == 0)

为啥这两个版本更靠谱?

  • 先做输入类型校验,严格符合题目要求;
  • 过滤非整数元素,避免运行时异常;
  • 遍历所有元素统计总数,不会中途提前返回;
  • 变量名用count比Sum更贴合语义(毕竟是计数,不是求和)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:22:30