zoukankan      html  css  js  c++  java
  • day13--函数练习(作业)

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

    实现效果
    [root@Kingstar day13]# cat test.txt 
    12345
    我上山打老虎
    老虎没打到
    打了一堆麻雀
    45678aaa
    
    [root@Kingstar day13]# python practice_1.py 
    请输入修改文件的地址:/home/day13/test.txt
    请输入需要修改的内容:麻雀  
    请输入修改后的内容:小鸟
    [root@Kingstar day13]# ls
    practice_1.py  test.txt
    [root@Kingstar day13]# cat test.txt 
    12345
    我上山打老虎
    老虎没打到
    打了一堆小鸟
    45678aaa
    
    [root@Kingstar day13]# 

    代码实现:

        def change(self):
            if os.path.exists(self.sourcefile):
                file_1 = open(self.sourcefile,mode='rb')
                file_2 = open(self.sourcefile_bak,mode='ab')
                while True:
                    res = file_1.readline().decode('utf-8')
                    if res:
                        if self.old_content in res:
                            res = res.replace(self.old_content,self.new_content)
                        file_2.write(res.encode('utf-8'))
                    else:break
                file_1.close()
                file_2.close()
                os.remove(self.sourcefile)
                os.rename(self.sourcefile_bak,self.sourcefile_bak[:-4:])

    2、编写tail工具

    实现效果:
    [root@Kingstar day13]# python practice_2.py 
    请输入日志文件的路径:/home/day13/1.log
    上,姜春,你这个憨批,上啊,别怂
    上,姜春,你这个憨批,上啊,别怂
    上,姜春,你这个憨批,上啊,别怂
    上,姜春,你这个憨批,上啊,别怂
    上,姜春,你这个憨批,上啊,别怂
    上,姜春,你这个憨批,上啊,别怂
    上,姜春,你这个憨批,上啊,别怂
    上,姜春,你这个憨批,上啊,别怂

    代码实现:

        def tailfile(self):
            if os.path.exists(self.logpath):
                self.f = open(self.logpath,mode='rb')
                self.f.seek(0,2)
                while True:
                    res = self.f.readline()
                    if not res:
                        time.sleep(0.5)
                    print(res.decode('utf-8'),end='')
                self.f.close()

    3、编写登录功能

    实现效果:
    [root@Kingstar day13]# python practice_3.py 
    请输入用户名:ls
    请输入密码:ls
    用户ls不存在,请先注册用户!
    [root@Kingstar day13]# python practice_3.py 
    请输入用户名:alex
    请输入密码:8888
    密码错误,登录失败!
    [root@Kingstar day13]# python practice_3.py 
    请输入用户名:egon
    请输入密码:vip666
    用户egon登录成功!
    [root@Kingstar day13]# 

    代码如下:

    import os,sys
    
    userfile = os.path.dirname(os.path.abspath(sys.argv[0])) + '/user.db'
    
    class Login():
        def __init__(self,username,passwd):
            self.username = username
            self.passwd = passwd
            self.check()
    
        def check(self):
            self.user_dict = {}
            if os.path.exists(userfile):
                f = open(r'{}'.format(userfile),mode='rb')
                while True:
                    res = f.readline().decode('utf-8')
                    if not res:break
                    name,pwd = res.strip('
    ').split(':')
                    self.user_dict[name] = pwd
                f.close()
                if self.username in self.user_dict.keys():
                    if self.passwd == self.user_dict.get(self.username):
                        print('用户{}登录成功!'.format(self.username))
                    else:print('密码错误,登录失败!')
                else:
                    print('用户{}不存在,请先注册用户!'.format(self.username))
            elseprint('用户文件不存在!')
    
    if __name__ == '__main__':
        main()

    4、注册功能

    实现效果:
    [root@Kingstar day13]# python practice_4.py 
    请输入你需要注册的用户名:alex
    请输入密码:slsl
    用户alex已存在,请重新创建,或者登录该账号!
    [root@Kingstar day13]# python practice_4.py 
    请输入你需要注册的用户名:egon
    请输入密码:lsl
    用户egon已存在,请重新创建,或者登录该账号!
    [root@Kingstar day13]# python practice_4.py 
    请输入你需要注册的用户名:tank
    请输入密码:ssdd
    用户tank已存在,请重新创建,或者登录该账号!
    [root@Kingstar day13]# python practice_4.py 
    请输入你需要注册的用户名:surpass
    请输入密码:123456
    用户surpass注册成功!
    [root@Kingstar day13]# 

    实现代码:

        def check(self):
            self.user_dict = {}
            if os.path.exists(userfile):
                self.f = open(r'{}'.format(userfile),mode='rb')
                while True:
                    res = self.f.readline().decode('utf-8')
                    if not res:break
                    username,userpwd = res.strip('
    ').split(':')
                    self.user_dict[username] = userpwd
                self.f.close()
                if self.name in self.user_dict.keys():
                    print('用户{}已存在,请重新创建,或者登录该账号!'.format(self.name))
                else:
                    self.f = open(r'{}'.format(userfile),mode='ab')
                    self.f.write((self.name+':'+self.passwd+'
    ').encode('utf-8'))
                    self.f.close()
                    print('用户{}注册成功!'.format(self.name))

    5、选做题

    需求如下:
    编写ATM程序实现下述功能,数据来源于文件db.txt
    # 1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改
    # 2、转账功能:用户A向用户B转账1000元,db.txt中完成用户A账号减钱,用户B账号加钱
    # 3、提现功能:用户输入提现金额,db.txt中该账号钱数减少
    # 4、查询余额功能:输入账号查询余额
    
    # 选做题中的选做题:登录功能
    # 用户登录成功后,内存中记录下该状态,上述功能以当前登录状态为准,必须先登录才能操作
  • 相关阅读:
    Transaction 事务简单详解
    JAVA------6.短信配置并返回
    JAVA------5.启动服务端,客户端发送数据,用户端接收数据,string数组转byte字节,CrcUtil校验
    java------4.根据经纬度排序,并计算距离。。。。。。。。根据地址计算出经纬度
    svn------找不到路径
    java------3.时间戳
    服务器------3.根据经纬度划分区域
    php-------1.ie11配置httpWatch9.1.21
    mysql------1.查询当天的所有数据
    html------1.网页mp3语音展示,点击图片放大,点击图片跳转链接,调表格
  • 原文地址:https://www.cnblogs.com/surpass123/p/12514338.html
Copyright © 2011-2022 走看看