python 基础 day01—task_用户登录三次错误被锁定

自学练习,记录下来,如有不对的地方,欢迎各位大神指出来!

题目:

编写登录接口

  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:\study\python\day1\day01\lock.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('\n')     #用.strip()去掉换行符
11     if username == lockline:            #若username和lock文件信息有相符,则提示该名字被锁,并退出程序
12         print("The name is locked")
13         exit()
14 
15 user_file = open('D:\study\python\day1\day01\\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\n' % 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()
View Code

 

 

 结果:

情景一:账号密码都正确!

情景二:账号错误

情景三:三次密码错误

再次登录cherry

 

posted @ 2018-04-11 09:55  cherry_cui  阅读(218)  评论(0编辑  收藏  举报