Python入门-用户登录程序升级版

编写登陆接口

基础需求:

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

升级需求:

  • 可以支持多个用户登录 (提示,通过列表存多个账户信息)
  • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
 1 users = [['ziv', '666'], ['alex', '213']]
 2 login_state = False
 3 # 设置用户登陆状态为False的标志
 4 count = 0
 5 username_count = []   # 用来计算用户登陆次数
 6 user_name = []
 7 lock_users = []
 8 f = open('lock_file.txt', 'r', encoding='utf-8')
 9 # 读取文件里已被锁定用户的信息
10 for i in f:
11     lock_users.append(i.strip())
12 while count < 3:
13     username = input('Username:').strip()
14     password = input('Password:').strip()
15     username_count.append(username)
16     # 将用户输入的用户名添加到计数列表
17     if username in lock_users:
18         exit('用户已被锁定')
19     for user_item in users:
20         if username == user_item[0] and password == user_item[1]:
21             print('登陆成功')
22             login_state = True  # 登陆成功,login_state改为True
23             break        # 跳出for循环
24     else:
25         print('用户名或密码错误')
26         # for 循环正常执行完(登录成功会被break,不会执行else,反之执行),再执行else
27     if login_state:
28         break            # 用来跳出while循环
29     count += 1
30 else:
31     print('错误次数过多')  # 登录成功while被break,不会执行else,反之执行
32     for lock in username_count:
33         user_name.append(lock)
34         if user_name.count(lock) >= 3:  # 列表里面出现次数超过3次的用户名
35             lock_write = open('lock_file.txt', 'a', encoding='utf-8')
36             lock_write.write(lock+'\n')
37             lock_write.close()
38             print('锁定用户:', lock)  

 注:需要先创建一个lock_file.txt文件,文件可以为空。

posted @ 2018-05-20 21:05  ZivLi  阅读(472)  评论(1编辑  收藏  举报