python之编写登陆接口(第一天)

作业:编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

 

帐号文件account.txt内容如下:


sam 123 

david 12 
kevin 123
lin 12 
tailen 123 
jack 12


 

锁文件account_lock.txt默认为空

1、流程图如下:

二、针对帐号文件里的不存在的用户也可以进行判断并锁定,针对用户和密码共有三次错误重试机会

 

 1 #_*_ coding:utf-8 _*_
 2 
 3 import sys,os,getpass
 4 
 5 os.system('clear')
 6 
 7 retry_limit = 3
 8 retry_count = 0
 9 
10 account_file = 'account.txt'
11 lock_file = 'account_lock.txt'
12 
13 while retry_count < retry_limit:                                         #只要重试不超过3次就不断循环
14     username = raw_input('\033[31;43mUsername:\033[0m')
15     username = username.strip()
16     lock_check = open(lock_file)                                         #当用户输入用户名后,打开LOCK 文件 以检查是否此用户已经LOCK了
17 
18     for line in lock_check.readlines():                                  #循环LOCK文件 
19         if username == line.strip('\n'):                                  #去掉换行符
20             sys.exit('\033[35mUser %s is locked!!!\033[0m' % username)   #如果LOCK了就直接退出
21     password = raw_input('\033[32;41mPassword:\033[0m')                  #输入密码
22 
23     f = open(account_file,'r')                                           #打开帐号文件 
24     match_flag = False                                                   # 默认为Flase,如果用户match 上了,就设置为 True 
25 
26     for line in f.readlines():                                           
27         user,passwd = line.strip('\n').split()                           #去掉每行多余的\n并把这一行按空格分成两列,分别赋值为user,passwd两个变量
28         if username == user and password == passwd:                      #判断用户名和密码是否都相等
29            print('hello, %s !!' % username)
30            match_flag = True                                             #相等就把循环外的match_flag变量改为了True
31            break                                                         #然后就不用继续循环了,直接 跳出,因为已经match上了
32     f.close()
33 
34     if match_flag == False:                                              #如果match_flag还为False,代表上面的循环中跟本就没有match上用户名和密码,所以需要继续循环
35         print('sorry,%s is unmatched' % username)
36         retry_count += 1                                                 #计数器加1
37     else:
38         print('wlecome login my learning system!')
39         break                                                            #用户成功登录,退出脚本
40 
41 else:
42     print("you account %s is locked!!!" % username)
43     g = open(lock_file,'a')
44     g.write(username)                                                    #被锁用户追加到用户锁文件
45     g.write('\n')   
46     g.close()
View Code

 

 

posted @ 2018-03-16 10:51  rna666  阅读(183)  评论(0)    收藏  举报