编写登陆认证程序

需求:

 基础需求:

   让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序

 升级需求:

   可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

基础需求:代码如下

 1 account = 'zwj'
 2 passwd = '123abc'
 3 
 4 count = 0
 5 while count < 3 :
 6     account_input = input('请输入您的用户名>>').strip()
 7     passwd_input = input('请输入您的密码>>').strip()
 8 
 9     if account == account_input and passwd == passwd_input :
10         print('----welcome to login----')
11         break
12     else:
13         count += 1

升级需求:代码如下

 1 import os,pickle
 2 
 3 user_msg = {'Tom':'123','Jack':'456','Rose':'789'}
 4 
 5 if not os.path.isfile('lock_file'):  # 若文件不存在,就创建一个
 6     f = open('lock_file', 'wb')
 7     lock_msg = {'Tom': 0, 'Jack': 0, 'Rose': 0}
 8     pickle.dump(lock_msg, f)
 9     f.close()
10 
11 while True:
12     f = open('lock_file','rb+')
13     lock_msg = pickle.load(f)
14 
15     in_account = input('请输入用户名>>').strip()
16     in_passwd = input('请输入密码>>').strip()
17 
18     if in_account not in lock_msg:    #用户名错误不计入锁定次数范围
19         print('账号不存在,请重新输入')
20         f.close()
21         continue
22     elif lock_msg[in_account] == 3:
23         print('用户名已锁定')
24         f.close()
25         break
26     elif in_passwd == user_msg[in_account]:
27         print('欢迎登陆',in_account)
28         lock_msg[in_account] = 0       #刷新输错次数
29         f.seek(0)
30         pickle.dump(lock_msg,f)
31         f.close()
32         break
33     else:
34         print('密码错误')
35         lock_msg[in_account] += 1
36         print('%s 次错误' %lock_msg[in_account])
37         f.seek(0)
38         pickle.dump(lock_msg,f)
39         f.close()

ps:

  这就搞定啦!如果有不同想法,欢迎在评论中写出来。

原文地址:https://www.cnblogs.com/NuoMiGao/p/9855397.html