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

如何优化嵌套If Else语句以避免重复代码?

优化后的命令行逻辑处理代码

原代码存在重复错误处理分支和过深嵌套的问题,我们可以通过提前校验非法情况并统一退出的方式简化代码,让逻辑更扁平清晰,同时修正原代码中sys.exit未加括号的调用错误:

import sys
import figlet

def main():
    # 先校验参数长度合法性
    if len(sys.argv) not in (1, 3):
        print("Invalid usage")
        sys.exit()
    
    # 处理无额外参数的情况
    if len(sys.argv) == 1:
        txt = input("Input: ")
        rndm(txt)
        return  # 执行完直接返回,避免进入后续逻辑
    
    # 处理带字体参数的情况
    # 校验第一个参数是否为合法选项
    if sys.argv[1] not in ("-f", "--font"):
        print("Invalid usage")
        sys.exit()
    
    # 校验字体是否存在
    if sys.argv[2] not in figlet.getFonts():
        print("Invalid usage")
        sys.exit()
    
    # 所有校验通过,执行指定字体逻辑
    txt = input("Input: ")
    spcfc(txt)

优化说明:

  • 统一错误出口:把所有非法参数的判断提前,不符合条件直接打印错误并退出,避免重复编写相同的错误处理代码
  • 减少嵌套层级:将原来的三层嵌套拆解为顺序判断,代码结构更直观,可读性更强
  • 修正潜在bug:原代码中sys.exit未加括号,实际不会触发程序退出,优化后改为sys.exit()确保正常退出
  • 提前返回:处理完无参数情况后直接return,避免后续代码冗余判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:04:57