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

Python程序包含过多if分支语句如何简化缩短冗余代码?

优化方案

你当前的代码所有分支逻辑都是固定的条件到goto参数的映射,且所有分支都包含重复的sleep(1)逻辑,可以用字典映射或者规律推导大幅简化代码。

方案1:字典映射(逻辑完全对齐原有分支,易维护)

直接把你所有的判断条件做成元组键,对应goto参数为值存入字典,运行时直接查表执行即可:

# 条件与goto参数映射表
action_map = {
    (M, p1): 0,
    (M, p2): 1,
    (M, p3): 2,
    (M, p4): 3,
    (M, p5): 4,
    (T, p1): 5,
    (T, p2): 6,
    (T, p3): 7,
    (T, p4): 8,
    (T, p5): 9,
}

# 执行逻辑
if (val, time) in action_map:
    goto(action_map[(val, time)])
    sleep(1)
# 可自行加else分支处理不符合条件的情况

方案2:规律推导(代码更短,适合规则固定的场景)

你的参数存在固定规律:p1-p5对应索引0-4,val为M时偏移0,val为T时偏移5,可进一步简化:

p_list = [p1, p2, p3, p4, p5]
offset = 0 if val == M else 5 if val == T else -1

if offset != -1 and time in p_list:
    goto(p_list.index(time) + offset)
    sleep(1)

两种方案都可以把原代码缩减80%以上,后续新增规则只需要修改映射表/参数列表,不需要新增if分支,也避免了重复代码带来的修改疏漏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:24:03