• day13 笔记


    文件修改方式:
    方式一:读全部,写全部 占内存 省硬盘
    方式二:一行行读入,做完更改之后用心的文件来覆盖旧的文件 删除 重命名 省内存 废硬盘
    os os.remove() os.rename()
    什么是函数?相当于一种具备某种功能的工具,先定义后调用
    为什么要用? 1.代码冗余,组织结构不清晰,可读性差
    2.可维护性,可扩展性
    如何用 先定义:
    def 函数名(参数):
    '''描述'''
    函数体
    return 1
    三种形式 1.无参数的
    2.有参数的
    3.空函数
    def add(x):
    pass
    def login(x):
    pass
    后调用:函数名类比变量名:内存地址
    1.根据函数名来寻找函数的内存地址
    2.根据括号内参数来执行程序内容
    函数调用可以当做参数:res(fun())
    函数返回值:return 是函数用来结束的标志,一旦函数运行到return位置是就会立即终止,并且返回值,默认返回值是None
    1.返回none的情况 1.没有return 2.return后面没有加任何值
    2.返回一个值 res=fun()#1
    3.返回多个值 会用,隔开并且以元组的形式返回这些值

    简易atm

    import os
    def login():
        '''登录模块,用户名密码存在aaa.txt中,形式为name:password'''
        tag = True
        while tag:
            username = input('请输入账号: ').strip()
            with open('aa.txt', 'r', encoding='utf-8') as f:
                for user_pwd in f:
                    user, pwd = user_pwd.strip().split(':')
                    if username == user:
                        while True:
                            password = input('请输入密码: ').strip()
                            if password == pwd:
                                print('登录成功!')
                                tag = False
                                break
                            else:
                                print('登录失败!')
        return 1,username
    def method_txt(username,new):
        '''文件更改模块,用来修改金额,文件是db.txt,格式为name:余额'''
        with open("db.txt",mode="r",encoding="utf-8")as f1,
            open("bb.txt",mode="w",encoding="utf-8")as f2:
            for i in f1:
                userdata =i.strip().split(":")
                if username == userdata[0]:
                    f2.write('%s:%s
    ' % (username, new))
                else:
                    f2.write(i)
        os.remove("db.txt")
        os.rename("bb.txt","db.txt")
    def add(username):
        '''存款模块,可以吧打开文件搜索相应账户的过程单独拿出来在写一个函数,但是交作业来不及了'''
        add_M = input("请输入你要存入的金额")
        with open("db.txt",mode="rt",encoding="utf-8")as f:
            for i in f:
                user_data = i.strip().split(":")
                if username == user_data[0]:
                    break
        user_data[1]=int(add_M)+int(user_data[1])
        method_txt(username,user_data[1])
        print("添加成功")
    def transfer(username):
        '''转账模块'''
        remove_U = input("请输入你要转入的账户")
        remove_M = input("请输入你要存入的金额")
        with open("db.txt",mode="rt",encoding="utf-8")as f:
            for i in f:
                user_data = i.strip().split(":")
                if username == user_data[0]:
                    break
        user_data[1]=int(user_data[1])-int(remove_M)
        method_txt(username,user_data[1])
        with open("db.txt",mode="rt",encoding="utf-8")as f:
            for i in f:
                user_data2 = i.strip().split(":")
                if remove_U == user_data2[0]:
                    break
        user_data2[1]=int(remove_M)+int(user_data2[1])
        method_txt(user_data2[0],user_data2[1])
        print("转账成功")
    def withdrawal(username):
        '''提现模块'''
        remove_M = input("请输入你要提现的金额")
        with open("db.txt", mode="rt", encoding="utf-8")as f:
            for i in f:
                user_data = i.strip().split(":")
                if username == user_data[0]:
                    break
        user_data[1] = int(user_data[1]) - int(remove_M)
        method_txt(username, user_data[1])
        print("提现成功")
    def select(username):
        '''查询模块'''
        with open("db.txt", mode="rt", encoding="utf-8")as f:
            for i in f:
                user_data = i.strip().split(":")
                if username == user_data[0]:
                    print(user_data)
    def main_atm():
        '''程序主函数'''
        res = login()
        while 1 in res:
            print("请选择命令:"
                  "1.充值"
                  "2.转账"
                  "3.提现"
                  "4.查询")
            cmd = int(input("请输入操作命令"))
            if cmd ==1:
                add(res[1])
            elif cmd == 2:
                transfer(res[1])
            elif cmd == 3:
                withdrawal(res[1])
            elif cmd == 4:
                select(res[1])
            else:
                print("请输入有效命令")
    main_atm()
    

      

  • 相关阅读:
    国产化之 .NET Core 操作达梦数据库DM8的两种方式
    gomicro开发RPC服务的方法及其运行原理
    解决gomicro与其它gRPC框架之间的通信问题
    十分钟学会Golang开发gRPC服务
    国产化之银河麒麟.netcore3.1访问https服务的两个问题
    基于知名微服务框架gomicro开发gRPC应用程序
    1.5 万字 + 40 张图解 HTTP 常见面试题
    记一次MySql重置root密码无效
    dockercompose搭建zookeeper集群
    dockercompose搭建kafka集群
  • 原文地址:https://www.cnblogs.com/Jicc-J/p/12514130.html
Copyright © 2020-2023  润新知