zoukankan      html  css  js  c++  java
  • Python_函数做字典的值

    当需要用到3个及以上的if...elif...else时就要考虑该方法进行简化

    通过将函数名称当做字典的值,利用字典的关键字查询,可以快速定位函数,进行执行

    【场景】用户查询信息,输入fn查询,执行对应函数

     1 # 简单用十个函数模拟查询函数
     2 def fun1():
     3     print("查询1")
     4 def fun2():
     5     print("查询2")
     6 def fun3():
     7     print("查询3")
     8 def fun4():
     9     print("查询4")
    10 def fun5():
    11     print("查询5")
    12 def fun6():
    13     print("查询6")
    14 def fun7():
    15     print("查询7")
    16 def fun8():
    17     print("查询8")
    18 def fun9():
    19     print("查询9")
    20 def fun10():
    21     print("查询10")

    传统方法 if...elif...elif...else(写起来很麻烦)

    choice = input("请输入查询内容fn:")
    if choice == 'f1':
        fun1()
    elif choice == 'f2':
        fun2()
    elif choice == 'f3':
        fun3()
    elif choice == 'f4':
        fun4()
    elif choice == 'f5':
        fun5()
    elif choice == 'f6':
        fun6()
    else:
        fun10()
    
    """
    请输入查询内容fn:f1
    查询1
    
    """

    将函数当做字典的值

    # 创建字典
    info = {'f1': fun1,
           'f2': fun2,
           'f3': fun3,
           'f4': fun4,
           'f5': fun5,
           'f6': fun6,
           'f7': fun7,
           'f8': fun8,
           'f9': fun9,
           'f10': fun10}
    choice = input("请输入查询内容fn:")
    info_value = info.get(choice)
    print(info_value)
    if info_value:
        info_value()
    else:
        print('输入异常')
    """
    请输入查询内容fn:f11
    None
    输入异常
    
    """

    获取字典中的value 使用get()函数,这样当关键字不存在时,返回的值的None,不会导致程序报错

    【总结】遇到连续重复的代码编写时,要思考解决方法,提高编程效率,同时增加代码的可读性

  • 相关阅读:
    Map的遍历示例
    vue+jquery使用FormData向后端传递数据和文件,express如何获取
    express+mongodb实现简单登录注册
    vue+express上传头像到数据库中img的路径
    vue父子组件之间相互传值
    express+mysql实现简单的登录注册功能
    固定底部菜单栏,点击跳转到指定路由
    js中的小案例(一)
    使用vue实现购物车功能
    git的日常使用
  • 原文地址:https://www.cnblogs.com/wangxiaobei2019/p/11581718.html
Copyright © 2011-2022 走看看