当你发现自己的才华撑不起野心时,就请安静下来学习吧。

Personal site

↑点击传送

3.17作业

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

def x(a,b,c):
    import os
    with open('{}'.format(a), mode='rt', encoding='utf-8') as f, \
            open('b.txt', mode='wt', encoding='utf-8') as f1:
        for line in f:
            f1.write(line.replace(b, c))

    os.remove('a.txt')
    os.rename('b.txt', 'a.txt')


x('a.txt','egon','oldboy')

2、编写tail工具
用来写内容

def write():
    while 1:
        cmd=input('请输入要写的内容(q退出):').strip()
        if cmd == 'q':
            break
        with open(r'a.txt',mode='ab') as f:       #a.txt可以自定义为任意文件
            f.write(f'{cmd}\n'.encode('utf-8'))


write()

监控

def tail_too():
    import time
    with open('a.txt', mode='rb') as f:
        f.seek(0, 2)
        while True:
            line = f.readline()
            if len(line) == 0:
                time.sleep(0.3)
            else:
                print(line.decode('utf-8'), end='')
tail_too()

3、编写登录功能

def d():
    name=input('your name:').strip()
    pwd=input('your pwd:').strip()
    with open(r'users.txt',mode='rt',encoding='utf-8') as f:
        for users in f:
            name1,pwd1=users.strip().split(':')
            if name == name1 and pwd == pwd1:
                print('login successfully')
                break
        else:
            print('name or pwd error')

4、编写注册功能

def z():
    while 1:
        name=input('your name:').strip()
        pwd=input('your pwd:').strip()
        with open(r'users.txt',mode='r+t',encoding='utf-8') as f:
            for i in f:
                name1,pwd1=i.strip().split(':')
                if name == name1:
                    print('用户名重复')
                    break
            else:
                f.write(f'{name}:{pwd}\n')
                print('注册成功')
                break

课后娱乐注册,登录程序(配合3.4使用)

while 1:
    print('''
    0 退出
    1 注册
    2 登录''')
    cmd=input('请输入命令:').strip()
    if not cmd.isdigit():
        print('请输入纯数字命令,傻子')
    if cmd == '1':
        z()
        break
    if cmd == '2':
        d()
        break
    if cmd == '0':
        print('正在退出程序')
        break
    else:
        print('命令不存在')

选做题:编写ATM程序实现下述功能,数据来源于文件db.txt
1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改
2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱
3、提现功能:用户输入提现金额,db.txt中该账号钱数减少
4、查询余额功能:输入账号查询余额

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

posted @ 2020-03-17 16:21  Joab-0429  阅读(155)  评论(0编辑  收藏  举报