自学练习,记录下来,如有不对的地方,欢迎各位大神指出来!
题目:
编写登录接口
1.输入用户名密码
2.认证成功后显示欢迎信息
3.输错三次后锁定
要求:
1.正确的用户名密码须储存在一个文件里面。
2.锁定用户后再次登录,将会提示用户被锁定。
Readme :
1.user_file为存放账号密码的文件
2.lock为存放被锁定用户的文件,默认为空。
3.程序会用输入的账号密码跟user文件信息对比,若相符则login,若账号不相符直接退出程序,若账号相符,密码错误三次以上则把账号写入lock文件。
4.程序会用输入的账号跟lock文件信息对比,若相符,则提示用户被锁定
流程图如下:
代码:
1 #cherry_cui 2 3 username = input("username:").strip() #输入用户名.strip()用作去掉前后空格 4 5 6 lock_file = open('D:studypythonday1day01lock.txt', 'r+') #打开lock文件,权限是读取更新,并赋值给lock_file变量 7 locklist = lock_file.readlines() #使用.readlines的方法 逐行读取lock文件信息,并赋值给locklist 8 9 for lockline in locklist: #用for循环读取lock文件里面的信息 10 lockline = lockline.strip(' ') #用.strip()去掉换行符 11 if username == lockline: #若username和lock文件信息有相符,则提示该名字被锁,并退出程序 12 print("The name is locked") 13 exit() 14 15 user_file = open('D:studypythonday1day01\user.txt', 'r') #打开user文件(u是unicode码,所以需要转义),权限是读取,并赋值给user_file变量 16 userlist = user_file.readlines() 17 18 for userline in userlist: 19 (user, pwd) = userline.split() #分别获取user文件里面的账号信息 20 if username == user: 21 p = 0 22 while p < 3: 23 password = input("password:") 24 25 if password == pwd: 26 print("Welcome user {user} login!".format(user=username)) #账号密码验证通过,并退出程序 27 exit() 28 29 else: 30 print("Invalid password!try again!") #密码验证不通过,输出提示,并转入下次循环 31 p += 1 #等同 p=p+1 32 33 else: 34 lock_file.write('%s ' % username) #超过三次输入密码错误,则把username写入lock文件中 35 print("The user {user} will be locked".format(user=username)) 36 37 38 exit() 39 40 print("The name does not exist!") 41 lock_file.close() #打开的文件必须要关闭,不然会占内存资源 42 user_file.close()
结果:
情景一:账号密码都正确!
情景二:账号错误
情景三:三次密码错误
再次登录cherry