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

如何用for循环查找n1到n2间的偶数,函数报AssertionError如何解决

even_numbers函数触发AssertionError的原因
  • 函数无显式返回值:当前逻辑仅将符合条件的偶数打印到控制台,没有返回任何有效结果,Python中无显式return的函数默认返回None,None和目标列表[-2, 0, 2]判断相等自然触发断言错误。
  • 函数内部硬编码覆盖了输入参数:函数第一行(n1, n2) = [-2, 4]直接覆盖了外部传入的参数,无论传入什么值,函数都只会使用固定的[-2,4]计算,完全失去了参数的作用。
  • 未收集计算结果:当前逻辑仅逐个打印偶数,没有将符合条件的数值存入列表,即使添加return语句也没有可返回的结果对象。
修复后的代码
def even_numbers(n1, n2):
    result = []
    # 直接使用传入的参数,不做硬编码覆盖
    # range左闭右开,此处结束值为n2符合断言预期的不含4的结果,若需要包含n2则改为n2+1
    for num in range(n1, n2):
        if num % 2 == 0:
            result.append(num)
    # 显式返回结果列表
    return result

assert even_numbers(-2, 4) == [-2, 0, 2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:45:01