1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:Caesar yang
 4 
 5 import getpass  #导入模块隐藏密码
 6 count = 0   #定义计数器
 7 while count < 3:
 8     name = input('username:')   #输入用户名
 9     with open('lock_file.txt','r+') as lock_list:   #读取用户名锁定文件
10         for lock_line in lock_list: #循环文件内容
11             lock_line = lock_line.strip('\n')   #去掉回车
12             if name == lock_line:   #将用户名与文件内容比较,如果相同,
13                 exit('用户%s已锁定,自动退出程序'%name)    #退出程序,如果不同,往下执行
14         with open('username.txt') as user_list:    #读取用户名文件
15             for user_line in user_list:    #循环文件内容
16                 (username,password) = user_line.strip('\n').split()    #由于用户名与密码在一块,需要将用户名与密码拆分开分别进行比较
17                 if name == username:    #如果用户名相同,往下执行
18                     j = 0   #定义一个新的计数器
19                     while j < 3:
20                         passwd = getpass.getpass('请输入密码:')     #输入密码
21                         if passwd == password:     #如果密码正确
22                             print('欢迎用户%s登陆!'%name)    #打印标语
23                             exit()     #正常结束
24                         else:       #如果密码错误
25                             if j != 2:     #这里因为j=2以后就直接结束程序了所以直接跳过0次机会
26                                 print('密码输入错误!请重新输入!你还有%s次机会:'%(2-j))
27                         j += 1     #j+1以后继续while循环
28                     else:   #j=3时
29                         lock_list.write(name + '\n' )   #将用户名写入锁定文件
30                         exit('用户%s达到最大错误次数,已锁定账号!'%name)
31                 else:   #如果用户名不同往下执行
32                     pass    #跳过此循环
33             else:   #用户名不同往下执行
34                 if count != 2:  #同样的道理,循环到第三次如果依旧错误将直接异常结束程序
35                     print('用户%s不存在,请重新输入,还有%s次机会:'%(name,2-count))
36             count += 1  #count+1以后继续for循环
37 else:   #异常结束
38     exit('用户%s不存在,自动退出程序!'%name)
用户登录接口

 

posted on 2018-08-02 23:00  月与卿。  阅读(163)  评论(0编辑  收藏  举报