zoukankan      html  css  js  c++  java
  • 环境小硕的转行之路-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")
    登陆系统
     
  • 相关阅读:
    Vue学习笔记【28】——Vue路由(使用 children 属性实现路由嵌套)
    Vue学习笔记【27】——Vue路由(设置路由)
    Vue学习笔记【26】——Vue路由(什么是路由)
    Vue学习笔记【25】——Vue组件(组件间传值)
    Vue学习笔记【24】——Vue组件(组件切换)
    Vue学习笔记【23】——Vue组件(组件的定义)
    ga统计
    token验证机制
    网站发布(项目上线流程)
    使用CSS将图片转换成黑白(灰色、置灰) & 毛玻璃效果
  • 原文地址:https://www.cnblogs.com/negu/p/11220506.html
Copyright © 2011-2022 走看看