zoukankan      html  css  js  c++  java
  • emmm......就当练习了系列12

    1.函数对象优化多分支if的代码练熟

    def login():
    print("登录功能")

    def register():
    print("注册功能")

    func_dic = {
    '1': ('登录', login),
    '2': ('注册', register),
    '0': ('退出', None)
    }

    def main():
    while True:
    for i in func_dic:
    print(i, func_dic[i][0])
    cmd = input("请输入编号:").strip()
    if not cmd.isdigit():
    print('必须输入编号')
    if cmd in func_dic:
    if func_dic[cmd][1]:
    func_dic[cmd][1]()
    else:
    break
    else:
    print("编号不存在")

    if __name__ == '__main__':
    main()

    2.编写计数器功能,要求调用一次在原有的基础上加一

    温馨提示:

    I:需要用到的知识点:闭包函数+nonlocal
    II:核心功能如下:
    def counter():
        x+=1
        return x
    

    要求最终效果类似

    print(couter()) # 1
    print(couter()) # 2
    print(couter()) # 3
    print(couter()) # 4
    print(couter()) # 5

    def get_number():
    x = 0
    def counter():
    nonlocal x
    x+=1
    return x
    return counter

    couter = get_number()
    print(couter())
    print(couter())
    print(couter())
    print(couter())
    print(couter())
     

    周末作业

    编写ATM程序实现下述功能,数据来源于文件db.txt

    0、注册功能:用户输入账号名、密码、金额,按照固定的格式存入文件db.txt
    1、登录功能:用户名不存在,要求必须先注册,用户名存在&输错三次锁定,登录成功后记录下登录状态(提示:可以使用全局变量来记录)

    下述操作,要求登录后才能操作

    1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改
    2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱
    3、提现功能:用户输入提现金额,db.txt中该账号钱数减少
    4、查询余额功能:输入账号查询余额

    def login():
    print("登录功能")

    def register():
    print("注册功能")

    def recharge():
    print("充值功能")

    def transfer():
    print("转账功能")

    def withdraw():
    print("提现功能")

    def balance():
    print("查询余额功能")

    login_user = None

    func_dic={
    '1': ('充值', recharge),
    '2': ('转账', transfer),
    '3': ('提现', withdraw),
    '4': ('余额', balance),
    '5': ('登录', login),
    '6': ('注册', register),
    '0': ('退出', None)
    }

    def main():
    while True:
    print('ATM'.center(22, '-'))
    for i in func_dic:
    print('{} {}'.format(i, func_dic[i][0]).center(18))
    print('END'.center(22, '-'))
    cmd = input("请输入编号:").strip()
    if not cmd.isdigit():
    print("必须输入编号")
    continue
    if cmd == '0':
    break
    if cmd in func_dic:
    func_dic[cmd][1]()
    else:
    print("编号不存在")

    if __name__ == '__main__':
    main()


  • 相关阅读:
    【MySQL】GTID小结
    MongoDB副本集--Secondary节点实例恢复
    【linux】glibc升级
    001.LVM简介
    008.FTP单独虚拟用户
    007.FTP虚拟用户访问
    006.FTP用户访问控制配置
    005.FTP本地用户访问
    004.FTP匿名用户访问
    003.FTP客户端连接
  • 原文地址:https://www.cnblogs.com/lucky-cat233/p/12533132.html
Copyright © 2011-2022 走看看