• day13 作业


    1、编写文件修改功能,调用函数时,传入三个参数(修改的文件路径,要修改的内容,修改后的内容)既可完成文件的修改

    import os
    def file_update(file_path,old_msg,new_msg):
        with open("b.txt","r",encoding="utf-8") as f 
                ,open(f"{file_path}\b.txt","w",encoding="utf-8") as f1:
            for line in f:
                f1.write(line.replace(f"{old_msg}",f"{new_msg}"))
        os.remove("b.txt")
    file_update("locked","a","b")
    

    2、编写tail工具

    import time
    def tail():
        with open("log.txt","rb") as f:
            f.seek(0,2)
            while True:
                new_msg = f.readline()
                if len(new_msg)==0:
                    time.sleep(1)
                else:
                    print(new_msg.decode("utf-8"))
    tail()
    #另一个文件
    def write_log():
        with open("log.txt","a",encoding="utf-8") as f:
            msg = input("请输入日志内容")
            f.write(f"
    {msg}")
    write_log()
    

    3、编写登录功能

    def login():
        user_inp = input("your name >")
        pwd_inp = input("your msg >")
        with open("a.txt","r",encoding="utf-8") as f:
            for line in f :
                username,password = line.strip().split(":")
                if username==user_inp and pwd_inp == password:
                    print("登录成功")
                    break
            else:
                print("输入错误")
    login()
    

    4、编写注册功能

    def register():
        username = input("请输入注册的用户名:")
        password = input("请输入注册的密码:")
        with open("a.txt","a",encoding="utf-8") as f :
            f.write(f"
    {username}:{password}")
    register()
    

    选做题:编写ATM程序实现以下功能,数据源于文件db.txt

    1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改

    2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱

    3、提现功能:用户输入提现金额,db.txt中该账号钱数减少

    4、查询余额功能:输入账号查询余额

    5、用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作

    import os
    def recharge():
        ''' 充值功能'''
        name_inp = input("请输入要充值的账号>")
        money_inp = input("请输入要充值的金钱>")
        with open("db.txt","r",encoding="utf-8") as f ,
            open(".db.txt.swap","w",encoding="utf-8") as f1:
                for line in f :
                    if name_inp in line :
                        name,money = line.strip().split(":")
                        new_money = int(money_inp)+int(money)
                        f1.write(line.replace(money,str(new_money)))
                    else:
                        f1.write(line)
        os.remove("db.txt")
        os.rename(".db.txt.swap","db.txt")
    
    def transfer():
        '''转账功能'''
        transfer_name_inp = input("请输入转账人姓名:")
        collector_name_inp = input("请输入收账人姓名:")
        money_inp = input("请输入转账金额")
        with open("db.txt","r",encoding="utf-8") as f ,
            open(".db.txt.swap","w",encoding="utf-8") as f1:
            for line in f :
                if transfer_name_inp in line :
                    transfer_name,transfer_money=line.strip().split(":")
                    new_money = int(transfer_money)-int(money_inp)
                    f1.write(line.replace(transfer_money,str(new_money)))
                elif collector_name_inp in line:
                    collector_name,collector_money=line.strip().split(":")
                    new_money = int(collector_money)+int(money_inp)
                    f1.write(line.replace(collector_money,str(new_money)))
                else:
                    f1.write(line)
        os.remove("db.txt")
        os.rename(".db.txt.swap","db.txt")
    def cash_withdrawal():
        '''提现功能'''
        name_inp = input("请输入提现账号的姓名:")
        money_inp = input("请输入提现的金额:")
        with open("db.txt","r",encoding="utf-8") as f ,
            open(".db.txt.swap","w",encoding="utf-8") as f1:
            for line in f:
                if name_inp in line:
                    name,money = line.strip().split(":")
                    new_money = int(money)-int(money_inp)
                    f1.write(line.replace(money,str(new_money)))
                else:
                    f1.write(line)
        os.remove("db.txt")
        os.rename(".db.txt.swap","db.txt")
    
    def login():
        '''登录功能'''
        user_inp = input("your name >")
        pwd_inp = input("your msg >")
        with open("a.txt","r",encoding="utf-8") as f:
            for line in f :
                username,password = line.strip().split(":")
                if username==user_inp and pwd_inp == password:
                    print("登录成功")
                    return 1
            else:
                print("输入错误")
    
    def query():
        '''查询功能'''
        name_inp=input("请输入你要查询的用户名:")
        with open("db.txt","r",encoding="utf-8")as f :
            for line in f :
                name,money = line.strip().split(":")
                if name_inp in line:
                    print(money)
                    break
    
    #主程序
    list1=["1","2","3","4"]
    while True:
        res = login()
        if res:
            while True:
                print('''
                       欢迎来到只能充值转账提现的劣质ATM系统
                                   1.充值
                                   2.转账
                                   3.提现
                                   4.查询
                       ''')
                cmd = input("请输入指令>")
                if cmd ==list1[0]:
                    recharge()
                elif cmd == list1[1]:
                    transfer()
                elif cmd == list1[2]:
                    cash_withdrawal()
                elif cmd == list1[3]:
                    query()
                else:
                    print("非法输入")
    
    
  • 相关阅读:
    leetcode-easy-string-28 Implement strStr()
    leetcode-easy-string-242. Valid Anagram
    leetcode-easy-string-387 First Unique Character in a String
    指派问题(匈牙利算法)
    Neural Network Basics
    Softmax && Cross-entropy Error
    Our Future
    SVD
    Lecture2
    RF 和 GBDT联系和区别
  • 原文地址:https://www.cnblogs.com/hz2lxt/p/12511480.html
Copyright © 2020-2023  润新知