Python-函数传递

1、电子钱包功能(大概框架)

    # 先写整体框架,再实现具体功能

def login():
    print('执行登录功能')


def scan():
    print('执行扫码支付功能')


def transfer():
    print('执行转账功能')


def query():
    print('执行查询余额功能')


def recharge():
    print('执行充值功能')



while True:
    print("""
    0 退出
    1 登录
    2 扫码支付
    3 转账
    4 查询余额
    """)
    opt = input('请输入功能编号>>>')
    # python 不支持 switch 语句,所以多个条件判断,只能用 elif 来实现
    if opt == '0':
        break
    if opt == '1':
        login()
    elif opt == '2':
        scan()
    elif opt == '3':
        transfer()
    elif opt == '4':
        query()
    else:
        print('此功能不存在,请输入1-4')

# 先搭框架,再实现功能

知识点:

# 该字典的用处:如果想要调用上面的函数功能,可以直接通过调用字典
func_dic = {'1': login, '2':scan, '3': transfer, '4': query, '5': recharge}  # 如果login(),相当于是函数返回值;如果login,就是把函数的内存地址
func_dic['1']()  # 这样可以直接调用函数,不需要if语jieg

例子:

func_dict ={'1':4,'2':0}
print( func_dict['1'])

运行结果:

4

根据上述知识点对电子钱包功能优化写法:

def login():
    print('执行登录功能')


def scan():
    print('执行扫码支付功能')


def transfer():
    print('执行转账功能')


def query():
    print('执行查询余额功能')


def recharge():
    print('执行充值功能')


# 该字典的用处:如果想要调用上面的函数功能,可以直接通过调用字典
func_dic = {'1': login, '2':scan, '3': transfer, '4': query, '5': recharge}  # 如果login(),相当于是函数返回值;如果login,就是把函数的内存地址
func_dic['1']()  # 这样可以直接调用函数,不需要if语句

while True:
 print("""
    0 退出
    1 登录
    2 扫码支付
    3 转账
    4 查询余额
    """)
    opt = input('请输入功能编号>>>')
    if opt == '0':
        break
    # 通过成员运算,判断输入的值是否是合法的key值
    if opt in func_dic:
        print(opt)
        func_dic[opt]()
    else:
        print('输入错误笨蛋,请输入0-5的数值')

'''
# 上面if else语句可替换为下面if语句
    if opt not in func_dic:
        print('输入错误笨蛋,请输入0-5的数值')
        continue # 本次循环结束,开始下一次循环
    func_dic[opt]()
'''

# 先搭框架,再实现功能

运行结果:

执行登录功能
请输入功能编号>>>4
执行查询余额功能
请输入功能编号>>> 

注:func_dic[opt]()中,opt是变量,所有不需要' ';而上面的1是字符串,所以需要' ';


知识点:

1)字典中包含列表,读取

字典:func_dic = {'0': [None, '退出'],
            '1': [login, '登录'],
            '2': [scan, '扫码支付'],
            '3': [transfer, '转账'],
            '4': [query, '查询余额'],
            '5': [recharge, '充值']}
读取:for key in func_dic:
    print(key,func_dic[key][1])    # 【1】字典中列表的第0位,第1位

读取结果:


例子:

def login():
    print('执行登录功能')


def scan():
    print('执行扫码支付功能')


def transfer():
    print('执行转账功能')


def query():
    print('执行查询余额功能')


def recharge():
    print('执行充值功能')


# 该字典的用处:如果想要调用上面的函数功能,可以直接通过调用字典
# d = {key1 : value1, key2 : value2, key3 : value3 }

func_dic = {'0': [None, '退出'], # 列表也可以换成元组
            '1': [login, '登录'],
            '2': [scan, '扫码支付'],
            '3': [transfer, '转账'],
            '4': [query, '查询余额'],
            '5': [recharge, '充值']}
# 如果login(),相当于是函数返回值;如果login,就是把函数的内存地址
#func_dic['1']()  # 这样可以直接调用函数,不需要if语句

while True:
    for key in func_dic:
        print(key,func_dic[key][1])  # [1]表示列表中的位置
    opt = input('请输入功能编号>>>')
    if opt == '0':
        break
    # 通过成员运算,判断输入的值是否是合法的key值
    if opt not in func_dic:
        print('输入错误笨蛋,请输入0-5的数值')
        continue  # 本次循环结束,开始下一次循环
    func_dic[opt][0]()  # func_dic[opt]() # 这个表示一个列表
# 主代码尽量不写在缩进里
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值