码迷,mamicode.com
首页 > 编程语言 > 详细

【跟着金角大王学Python】-课后作业:编写登陆接口

时间:2017-08-14 15:20:02      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:python初学者

要求:

  • 输入用户名密码

  • 认证成功后显示欢迎信息

  • 输错三次后锁定

本程和作业要求稍有不同,当用户输入三次相同的用户名且无法登陆时锁定该用户名。

下面也会附上符合题目要求的代码,但是存在一个Bug,就是输入三次无法正确登陆只会锁定最后一次输入的用户名。

    

程序一:

#!usr/bin/evn python
#-*-coding utf-8  -*-
__author__ = ‘Galen‘
import getpass as gp#引入getpass模块
import pickle#引入pickle模块,pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。
import os
#验证是否存在保存被锁定用户的文件,如果没有则创建一个空的文件,并写入一个空的列表
if not os.path.exists("F:/AAAA资料/Python程序/Python3.5-零基础-高级-完整项目剖析/第1周/lock_user.txt"):
    lock_user_file = open("lock_user.txt","wb")
    lock_user = []
    pickle.dump(lock_user,lock_user_file)
    lock_user_file.close()
#定义事先设定的username和password常亮
_username ="Galen"
_password = "Galen"
inpu_user = {}#创建一个空的字典,用于判断一个用户名输入了几遍

count = 0#用于记录输入的次数
while count<3:
    print("第{}次输入".format(count+1))
    username = input("username:")
    if username not in inpu_user:
        inpu_user[username]=0
    #读取文件
    lock_user_file = open("lock_user.txt","rb")
    lock_user = pickle.load(lock_user_file)
    lock_user_file.close()
    #验证输入的用户是否已经被锁定
    if username not in lock_user:
        password = gp.getpass("password:")
        if username == _username and password == _password:
            print("Welocme {} come back".format(username))
            count +=1
            inpu_user[username] +=1
            break
        else:
            print("you are illegal user")
            count +=1
            inpu_user[username] +=1
    else:
        #如果输入的用户被锁定,可以通过验证解除锁定
        print("You have been locked,please contact with administrators")
        #
        if input("Are you want to contact administrators :") =="y":
            if input("Please input your ide_code : ") =="Galen":
                #输入输入验证码正确则,删除被锁用户名
                lock_user_file = open("lock_user.txt","rb")
                lock_user = pickle.load(lock_user_file)
                lock_user.remove(username)
                lock_user_file = open("lock_user.txt","wb")
                pickle.dump(lock_user,lock_user_file)
                lock_user_file.close()
            else:
                print("You have lost the last chance")
        break
#如果连续输入三次未登陆则锁定用户
if inpu_user[username]==3:

    lock_user_file = open("lock_user.txt","rb")
    lock_user = pickle.load(lock_user_file)
    lock_user.append(username)
    lock_user_file = open("lock_user.txt","wb")
    pickle.dump(lock_user,lock_user_file)
    lock_user_file.close()

程序二:

#!usr/bin/evn python
#-*-coding utf-8  -*-
__author__ = ‘Galen‘
import getpass as gp#引入getpass模块
import pickle
import os
#验证是否存在保存被锁定用户的文件,如果没有则创建一个空的文件,并写入一个空的列表
if not os.path.exists("F:/AAAA资料/Python程序/Python3.5-零基础-高级-完整项目剖析/第1周/lock_user.txt"):
    lock_user_file = open("lock_user.txt","wb")
    lock_user = []
    pickle.dump(lock_user,lock_user_file)
    lock_user_file.close()
#定义事先设定的username和password常亮
_username ="Galen"
_password = "Galen"
#用于记录输入的次数
count = 0
while count<3:
    print("第{}次输入".format(count+1))
    username = input("username:")
    #读取文件
    lock_user_file = open("lock_user.txt","rb")
    lock_user = pickle.load(lock_user_file)
    lock_user_file.close()
    #验证输入的用户是否已经被锁定
    if username not in lock_user:
        password = gp.getpass("password:")
        if username == _username and password == _password:
            print("Welocme {} come back".format(username))
            count +=1
            break
        else:
            print("you are illegal user")
            count +=1
    else:
        #如果输入的用户被锁定,可以通过验证解除锁定
        print("You have been locked,please contact with administrators")
        #
        if input("Are you want to contact administrators :") =="y":
            if input("Please input your ide_code : ") =="Galen":
                #输入输入验证码正确则,删除被锁用户名
                lock_user_file = open("lock_user.txt","rb")
                lock_user = pickle.load(lock_user_file)
                lock_user.remove(username)
                lock_user_file = open("lock_user.txt","wb")
                pickle.dump(lock_user,lock_user_file)
                lock_user_file.close()
            else:
                print("You have lost the last chance")
        break
#如果输入三次未登陆则锁定最后一次输入的用户
if count == 3 :
    lock_user_file = open("lock_user.txt","rb")
    lock_user = pickle.load(lock_user_file)
    lock_user.append(username)
    lock_user_file = open("lock_user.txt","wb")
    pickle.dump(lock_user,lock_user_file)
    lock_user_file.close()


本文出自 “纯醪八盅VSIT” 博客,请务必保留此出处http://chunlaobazhong.blog.51cto.com/11499723/1956085

【跟着金角大王学Python】-课后作业:编写登陆接口

标签:python初学者

原文地址:http://chunlaobazhong.blog.51cto.com/11499723/1956085

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!