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]() # 这个表示一个列表
# 主代码尽量不写在缩进里