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

如何简化Python中SUMMER OF '69求和代码的elif语句?

简化summer_69函数的条件判断逻辑

当然可以简化你的elif语句,核心思路是调整判断顺序,让状态切换的逻辑更前置,减少冗余分支。先看优化后的代码:

def summer_69(arr):
    total = 0
    ignore = False  # 用更语义化的变量名替代alert
    for num in arr:
        if num == 6:
            ignore = True
        elif num == 9:
            ignore = False
        elif not ignore:
            total += num
    return total  # 原代码用print,改为return更符合函数的返回值设计

简化的关键点:

  • 变量名语义化:把alert改成ignore,直接表达"是否需要忽略当前数字"的含义,可读性更强。
  • 调整判断顺序:先处理6和9的状态切换,剩下的逻辑只有两种情况:如果不在忽略状态,就累加数字;如果在忽略状态,直接跳过(不需要写pass,因为没有分支处理就是默认跳过)。
  • 去掉冗余分支:原代码中if x !=6 and alert==0和elif alert==1: pass的分支都可以合并,通过先切换状态再判断是否累加的逻辑,大幅减少elif的数量。

验证示例:

  • summer_69([1,3,5]) → 9,正确累加所有数字
  • summer_69([4,5,6,7,8,9]) → 9,忽略6-9之间的数字,累加4+5
  • summer_69([2,1,6,9,11]) →14,累加2+1+11,正确跳过6-9区间

另外注意,原代码中使用sum作为变量名是不推荐的,因为sum是Python内置函数名,会覆盖内置函数的引用,换成total更安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:15:14