如何优化嵌套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
相关产品推荐
相关产品推荐

