python练习1--用户登入
python版本为python3.5
1.要求
1)输入用户名密码
2)认证成功后显示欢迎信息
3)输错三次后锁定
2.需求分析
1)用户信息存储在文件中(login/config/user_login.txt)
2)用户输入用户名和密码
3)判断用户名是否存在,存在则继续,不存在则提示继续输入
4)判断输入的用户名是否已经被锁定,如果已锁定则退出程序,否则继续
5)匹配文件中的用户信息
6)如果匹配则打印出欢迎信息
7)如果输入3次密码错误,则锁定该用户名(login/config/name_lock.txt)
3.测试用户
bigberg:123abc
lc:123456
smallberg:111111
root:12345
dinasor:12321
1 # -*- coding: UTF-8 -*- 2 #Author:Bigberg 3 4 #定义一个循环计数 5 count = 0 6 #定义一个字典存储用户名和密码 7 names={} 8 9 #定义一个列表存储用户名 10 name_exit = [] 11 12 #输入用户名 13 username = input("username:") 14 15 #判断输入的用户的用户是否在用户名单中 16 with open("../config/name_login.txt",'r') as f: 17 while True: 18 line = f.readline().strip() 19 if not line: 20 break 21 else: 22 name = line.split(':')[0] 23 passwd = line.split(':')[1] 24 names[name] = passwd 25 for key in names: 26 name_exit.append(key) 27 #判断用户名是否正确,不正确则继续输入 28 while username not in name_exit: 29 print("The account is not exit.Check it again.") 30 username = input("username:") 31 else: 32 # 读取锁定文件中的内容 33 with open("../config/name_lock.txt", "r") as f: 34 lock_name = f.read() 35 36 # 判断用户名是否在锁定文件中,如果在就退出程序 37 if username == lock_name: 38 print("Sorry.Your account has been locked.") 39 exit() 40 else: 41 # 3次输入密码的机会 42 while count < 3: 43 passwd_input = input("password:") 44 45 # 判断用户名和密码是否有效 46 if passwd_input == names[username]: 47 print("Welcome!", username) 48 break 49 else: 50 print("Error,please try again.") 51 52 count += 1 53 54 # 如果3次输入密码错误,则将用户名添加到锁定文件 55 if count == 3: 56 with open("../config/name_lock.txt", "w") as f: 57 f.write("%s" % username) 58 print("You have tried 3 times,and your account will be locked")