环境小硕的转行之路-4-第一次作业-登陆系统

第一周作业


作业要求:

1.创建一个登陆系统,用户一进去输入用户名密码必须和数据库中相一致才能登入,否则报错。
2.输错3次密码,将用户名加入黑名单
3.黑名单的用户即使下次登入也会弹出窗口不让登陆。

注意事项:这次作业要用到字典、文件的知识已经超纲。需要先行自学。

先期工作

1.在pycharm中存放源码的一级文件夹下创建一个txt文本,名为userandpassword.txt,后输入如下图所示内容。

2.创建一个一个空白txt文本名为blacklist.txt


具体源码

 1 author : negu
 2 # -*- coding: utf-8 -*-
 3 #创建存放账户和密码的数据库
 4 user_dict = {} #创建一个字典,准备好当作账户密码的临时存放点
 5 try:#超纲语句
 6     with open('userandpassword.txt',"r") as dict_file: #读取数据库后关闭文件(不用打dict_file.close)
 7         for line in dict_file:#循环语句将数据库里的数据提出
 8             (username,password) = line.strip().split(":")#strip去tab,split将账户和密码以":"为分隔符切分
 9             user_dict[username] = password #将数据存入字典中,username当key,password当value
10 except IOError:
11     print("{file} not exit".format(file = filename)) #IOError代表没创建记事本
12 namelist = [] #创建一个列表存放黑名单
13 try:
14     with open('blacklist.txt',"r") as list_file: #读取数据库后关闭文件
15         for blackname in list_file:#利用循环将黑名单数据库里的数据转移到列表黑名单
16             namelist.append(blackname.strip('
'))#strip去头尾空格
17 except IOError:
18     print("{file} not exit".format(file = filename))
19 while True :#第一层大循环,用作登陆成功后退出用。
20     count = 0
21     name = input("please input your username:	")
22     if name in namelist:#判断是否在黑名单中
23             print("{0} is blocked".format(name))
24             userconfirm = input("do you want to change username? Y/N")#询问是否继续输入别的用户名
25             if userconfirm == "y":
26                 continue
27             else:
28                 break
29     if name in user_dict.keys():#判断用户名是否在字典数据库中中
30             while count <=3 :
31                 _password = input("please input your password:")
32                 if _password == user_dict[name]:#在字典中索引密码
33                     print("hello {name}".format(name=name))
34                     exit()
35                 else:
36                     print("wrong password")
37                     count +=1
38                     userconfirm = input("do you want to change username? Y/N")#询问是否继续输入别的用户名
39                     if userconfirm == "y":
40                         continue
41                     else:
42                         break
43             namelist.append(name)#超过三次、加入黑名单
44             with open("black.list","a") as add_list:
45                 add_list.write("
"+name)#将黑名单移入数据库
46     else:print("username not exit")
登陆系统
 
原文地址:https://www.cnblogs.com/negu/p/11220506.html