前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python—IF分支太多怎么办?

Python—IF分支太多怎么办?

作者头像
Ed_Frey
发布2019-07-04 14:37:11
1.4K0
发布2019-07-04 14:37:11
举报
文章被收录于专栏:奔跑的键盘侠奔跑的键盘侠

Python的字典,是一个很神奇的东西,有人说,什么都可以装。可以装下整个宇宙?好像哪里有看到这么一段很霸气的文字。学习python的大半年时间里,虽然见识的不是很多,但是已然觉得字典是一个很霸道的存在。之前

Python——三级菜单(字典+文件读写)这篇帖子,就有涉及到字典的应用,可以装的下n级菜单,如果只看教科书根本想不到还有这么一出。那今天再针对上一篇帖子Python—蜕变的必经之路(从脚本到应用程序)中的一段代码,进行字典的介绍。

代码语言:javascript
复制

def interactive(acc_data):
 '''
    interact with user
 :param acc_data:
 :return:
    '''
 menu =u'''
    ————————ABC BANK————————
 \033[32;1ml.  account info
    2.  repayment
    3.  withdraw
    4.  transfer
    5.  bill
    6.  logout
 \033[0m'''
 menu_dic = {
 "1": account_info,
 "2": repay,
 "3": withdraw,
 "4": transfer,
 "5": pay_check,
 "6": logout,
    }
    exit_flag = False
 while not exit_flag:
 print(menu)
        user_option = input(">>:").strip()
 if user_option in menu_dic:
            exit_flag = menu_dic[user_option](acc_data)
 else:
 print("\033[31;1mOption does not exist!\033[0m")

上面是一个interactive函数,函数内部其实就是想根据输入的1-6来调用对应的函数。整个函数的核心语句是exit_flag = menu_dic[user_option](acc_data)

menu_dic对应的是一个字典,键是1-6,键值其实是6个函数(具体函数实现的功能代码此处就省略了),要调用函数,先get函数名字menu_dic[user_option],再加上一个括号和参数,就是调用函数了:menu_dic[user_option](acc_data)。有没有觉得挺神奇的

其实这个函数是要实现一个6分支的IF判断语句的,演变成了字典的使用。好处就在于,逻辑清晰明了,即使字典中再增加几个甚至几十个键值对,代码可读性也很高。如果你是几十个if下来,肯定要看崩溃。

最近事务有点繁忙,学习也有点搁浅了,更新自然也会少一些,好货我会慢慢酝酿的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑的键盘侠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档