# 作业:
# 编写用户注册函数,实现功能
# 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秒,则直接终止函数,无法认证,否则就从文件中清除锁定的用户信息,并允许用户进行认证
转载于:https://www.cnblogs.com/Maikes/p/9458866.html