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")

 



posted @ 2017-02-20 16:03  Bigberg  阅读(1432)  评论(2编辑  收藏  举报