Python入门-用户登录程序升级版
程序员文章站
2022-04-15 17:21:59
编写登陆接口 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里) 注:需要先创建一个lock_fil ......
编写登陆接口
基础需求:
- 让用户输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序
升级需求:
- 可以支持多个用户登录 (提示,通过列表存多个账户信息)
- 用户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文件,文件可以为空。