Python中如何处理使用多个分支语句(多个if和else)
Python中如何避免使用多个分支语句(多个if和else)
在程序中,我们经常会遇到需要写很多分支语句的情况,这时候一般的作法就是写很多个if和else或者if和else if。但采用这种写法的代码效率比较低,而且可读性也比较差。
在Python中,我们可以采用Function Map的方法,避免使用多个分支语句,提高效率。
具体的作法就是把在某个条件下要执行的过程写成一个函数,然后把该条件本身和对应的函数作为一对Key-Value放入一个字典(Dictionary)中,该字典相当于一个Map。然后只要执行这个Function Map就行了。
例如,下面的代码是求一个数除以10的余数,并打印出来,可以这样写:
while True: n = raw_input() i = int(n) % 10 if i == 0: print 0 elif i == 1: print 1 elif i == 2: print 2 elif i == 3: print 3 elif i == 4: print 4 elif i == 5: print 5 elif i == 6: print 6 elif i == 7: print 7 elif i == 8: print 8 elif i == 9: print 9
用Function Map可以这样写:
def get0(): print 0 def get1(): print 1 def get2(): print 2 def get3(): print 3 def get4(): print 4 def get5(): print 5 def get6(): print 6 def get7(): print 7 def get8(): print 8 def get9(): print 9 dict = {0:get0, 1:get1, 2:get2, 3:get3, 4:get4, 5:get5, 6:get6, 7:get7, 8:get8, 9:get9} while True: n = raw_input() i = int(n) % 10 dict[i]()