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

函数与无限循环:求0至10偶数和的while循环代码陷入死循环问题

问题分析与修复

无限循环的核心原因

你这段代码的内层while循环完全逻辑错误:

  • 当传入lex=10时,第一个内层循环while lex % 2 == 0的条件永远成立——因为lex的值自始至终没被修改过,它一直是10,永远是偶数,所以这个循环会无限执行,不停打印10,zero一直加1,外层循环的条件早晚会不满足,但内层循环根本跳不出来,直接卡死。
  • 还有语法错误:lex % 2 =! 0是错的,不等于的运算符是!=,不是=!。
  • 另外你定义的sum变量根本不存在,最后返回它会直接报错。
  • 整体逻辑跑偏:你要遍历0到lex的每个数判断奇偶,但代码里一直在死磕传入的lex本身,根本没逐个遍历数字。

修复后的代码

要实现从0到lex(包含)的偶数之和,正确的while循环写法应该是这样:

def function(lex):
    current = 0
    total = 0
    while current <= lex:
        if current % 2 == 0:
            total += current
        current += 1
    return total

print(function(10))  # 输出30,0+2+4+6+8+10=30

修复说明

  • 用current变量从0开始遍历到lex,每次循环后自增1,保证能正常跳出外层循环。
  • 每次判断当前current是否为偶数,是的话加到总和total里。
  • 定义了total来存储累加的和,最后返回这个变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:01:18