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

如何简化Python中大量使用if/else分支判断的冗余代码?

优化方案

核心优化思路

  • 用字典建立选项值和预算区间的映射关系,彻底消除重复的if/elif分支,后续增减预算档位只需要修改字典即可,可维护性更强
  • 简化输入合法性判断逻辑,直接校验输入是否在字典的合法key集合中,避免写大量重复的!=判断
  • 修复原代码的已知问题:包括错误的输入提示(原代码else分支错误提示输入1-4)、未定义local变量就先打印的逻辑问题、冗余的未使用全局变量声明
  • 菜单打印逻辑和字典绑定,后续调整档位不需要同步修改打印内容和判断逻辑,统一维护降低出错概率

优化后完整代码

def budget():
    # 定义预算选项映射,后续修改档位仅需调整此字典
    budget_map = {
        '1': 'UNDER £10',
        '2': '£10 - £20',
        '3': '£20 - £30',
        '4': '£30 - £40',
        '5': '£40 - £50',
        '6': '£50 ABOVE'
    }
    reply = "0"
    local = ""
    while reply not in budget_map:
        print("                                           ")
        # 仅当已有选择时显示已选内容,修复原代码未定义变量报错问题
        if local:
            print("         YOU HAVE SELECTED", local,"       ")
        print("          PLEASE ENTER YOUR BUDGET         ")
        print("                                           ")
        # 动态打印菜单,和映射字典绑定无需手动同步
        for key, value in budget_map.items():
            print(f"         {key}.  {value:<30}")
        print("                                           ")
        
        reply = input("Please enter a valid option (1-6)\n")
        if reply in budget_map:
            local = budget_map[reply]
        else:
            print("Please enter a valid option (1-6) \n")
    # 可根据需求返回选择结果,替换原代码无用的全局变量逻辑
    return local

内容的提问来源于stack exchange,提问作者The Charming Fellow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:39:03