# 作业: # 编写用户注册函数,实现功能 # 1、在函数内接收用户输入的用户名、密码、余额 # 要求用户输入的用户名必须为字符串,并且保证用户输入的用户名不与其他用户重复 # 要求用户输入两次密码,确认输入一致 # 要求用户输入的余额必须为数字 # def register_input(): # while True: # name = input('用户名:').strip() # if name.isalpha(): # break # else: # print('非法输入,重新输入') # pwd=input('密码:').strip() # pwd1=input('确认密码:').strip() # return name,pwd,pwd1 # def register(name,pwd,pwd1): # with open(r'db.txt',mode='r',encoding='utf-8') as f: # while True: # for line in f: # line=line.strip('\n').split(',') # if name==line[0]: # print('用户名已存在请重新输入') # register_input() # if pwd==pwd1: # print('注册成功') # break # else: # print('密码不同,重新输入') # while True: # balance=input('充值金额:') # if balance.isdigit(): # balance=int(balance) # break # else: # print('非法输入') # continue # with open(r'db.txt', mode='a', encoding='utf-8') as f1: # f1.write('%s,%s,%s\n' %(name,pwd,balance)) # f=register_input() # register(*f) # 2、要求注册的用户信息全部存放于文件中 # 编写用户转账函数,实现功能 # 1、传入源账户名(保证必须为str)、目标账户名(保证必须为str)、转账金额(保证必须为数字) # 2、实现源账户减钱,目标账户加钱 # import os # def land_input(): # while True: # name = input('用户名:').strip() # if name.isalpha(): # break # else: # print('非法输入,重新输入') # pwd=input('密码:').strip() # if pwd.isdigit(): # pwd=int(pwd) # with open ('db.txt',mode='r',encoding='utf-8') as f: # for line in f: # line=line.strip('\n').split(',') # if name==line[0] and pwd==line[1]: # print('登陆成功') # balance=int(line[2]) # return name, balance # else: # land_input() # def transfer_accounts(name,balance): # while True: # operating_name=input('目标帐户名:').strip() # if name.isalpha(): # break # else: # print('非法输入,重新输入') # operating_balance=input('转账金额:').strip() # if operating_balance.isdigit(): # operating_balance=int(operating_balance) # print(name) # confirm_name=input('确认账户:y/n').strip() # if confirm_name in ('y','yes','Y'): # with open('db.txt',mode='r',encoding='utf-8') as f,open('db.txt.swap',mode='w',encoding='utf-8') as f1: # for line in f: # if line.startswith(operating_name) : # line= line.strip('\n').split(',') # line[2] = int(line[2]) # line[2]+=operating_balance # line[-1]=str(line[2]) # line=','.join(line)+'\n' # if line.startswith(name): # line= line.strip('\n').split(',') # line[2]=int(line[2]) # line[2]-=operating_balance # line[-1]=str(line[2]) # line=','.join(line)+'\n' # f1.write(line) # os.remove('db.txt') # os.rename('db.txt.swap','db.txt') # break # elif confirm_name in ('n','N','no'): # transfer_accounts() # else: # print('非法输入') # f=land_input() # # print(*f) # transfer_accounts(*f) # 编写用户验证函数,实现功能 # 1、用户输入账号,密码,然后与文件中存放的账号密码验证 # 2、同一账号输错密码三次则锁定 # # 3、这一项为选做功能:锁定的账号,在五分钟内无法再次登录 # 提示:一旦用户锁定,则将用户名与当前时间写入文件,例如: egon:1522134383.29839 # 实现方式如下: # # import time # # current_time=time.time() # current_time=str(current_time) #当前的时间是浮点数,要存放于文件,需要转成字符串 # lock_user='%s:%s\n' %('egon',current_time) # # 然后打开文件 # f.write(lock_user) # # 以后再次执行用户验证功能,先判断用户输入的用户名是否是锁定的用户,如果是,再用当前时间time.time()减去锁定的用户名后 # 的时间,如果得出的结果小于300秒,则直接终止函数,无法认证,否则就从文件中清除锁定的用户信息,并允许用户进行认证