如何在嵌套if结构中复用单个else分支,避免重复编写相同逻辑?
解决方案
你可以通过以下几种方式实现需求,不用重复编写相同的else分支:
方法一:合并判断条件
直接把外层和内层的条件用逻辑与(and)合并成一个if判断,这样当外层条件不满足,或者外层条件满足但内层条件不满足时,都会走到else分支:
a = 1 b = a * 5 if a == 1 and b < 3: print(b) else: print(a)
方法二:封装else逻辑为函数
如果else分支的逻辑比较复杂,把它封装成一个函数,在外层if的内层else和外层else里都调用这个函数,避免代码重复:
a = 1 def print_a(): print(a) if a == 1: b = a * 5 if b < 3: print(b) else: print_a() else: print_a()
方法三:反向条件判断
先判断需要执行else分支的情况,再用else处理原print(b)的逻辑(这种写法可读性稍弱,适合特定场景):
a = 1 b = a * 5 if not (a == 1 and b < 3): print(a) else: print(b)
内容的提问来源于stack exchange,提问作者kms
相关产品推荐
相关产品推荐

