Python中如何避免使用多个分支语句(多个if和else)——函数字典(Function Map)简介

在程序中,我们经常会遇到需要写很多分支语句的情况,这时候一般的作法就是写很多个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]()

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值