KillPython  

用户注册登录,可以注册新用户;当登录用户名或者密码错误3次就锁定用户不能再登录

1.流程图

 

2.代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author Kevin Liu

usertable = "usertable"
lock_list = "lock_list"

def login():
    i = 0
    for i in range(3):
        username = input("请输入用户名:")
        with open(lock_list,"r") as f:
            for line in f.readlines():
                if username == line.strip("\n"):
                    print("%s用户已经被锁定,即将退出!" % username)
                    exit()

        with open(usertable,'r')as user_login:
            for line in user_login.readlines():
                user,passwd = line.strip('\n').split("|")
                j = 0
                while j < 3:
                    password = input("请初入密码:")
                    if username == user and password == passwd:
                        print("登录成功!")
                        return True
                        exit()
                    else:
                        print("用户名或者密码错误!")
                        print("这是第 %d 次登录失败" % (j+1))
                    j += 1

                else:
                    print("账户已经被锁定")
                    print(username)
                    block(username)
                    return False


def register(username,password):
    """
    用户注册模块
    :param username:
    :param password:
    :return:
    """
    f = open("usertable",'a')
    temp = "\n"+username+"|"+password
    f.write(temp)
    f.close()


def block(username):
    """
    输入三次失败就把锁定的用户名写入阻止名单,下次进入优先查看lock_list名单
    :param username:被写入的阻止用户
    :return:没有返回值
    """
    with open(lock_list,"a") as f:
        f.write(username)
        f.write("\n")



def main():
    t = input("1:登录;2:注册")
    if t == "1":
        r = login()

    elif t == "2":
        user = input("请输入用户名:")
        pwd = input("请输入密码:")
        register(user,pwd)
        print("注册成功")

main()

  

posted on 2017-02-14 14:21  KillPython  阅读(132)  评论(0编辑  收藏  举报