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

python之用户登录三次锁定

时间:2017-05-01 00:28:26      阅读:2323      评论:0      收藏:0      [点我收藏+]

标签:循环   div   pytho   strip   span   无限   判断   login   use   

基于文件存储的用户登录程序(3次登录失败,锁定用户)

思路:
1.login.user是存放用户id及密码的文件,也就是白名单;
2.lock.user是存放被锁定的用户id的文档,默认为空,也就是黑名单;
3.程序会先检查输入的用户名是否存在于黑名单中,如果有,则退出,并提示此用户被锁定,否则继续检查白名单;
4.程序先对login.user里的合法用户id进行判断,若连续输入用户id错误达三次程序直接退出;
4.程序最后会对输入的id,对应的密码进行判断,输入密码有3次机会,连续三次错误则会锁定用户id并且退出.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time
# 读取login.py文件,将内容赋值给变量login_f1,并关闭
f1 = open(login.user,r)
login_f1 = f1.read()
f1.close()

# 将变量login_f1的值,进行分片,分隔符为‘:‘
# 提取第0位元素,赋值给另一个变量ruser
ruser = login_f1.strip().split(":")[0]
# 提取第1位元素,赋值给另一个变量rpwd
rpwd = login_f1.split(":")[1]

# 读取黑名单文件lock.user,将内容赋值给变量lock_f2,并关闭
f2 = open(lock.user,r)
lock_f2 = f2.readlines()
f2.close()

# 定义一个变量,用于计数
t = 0

# 当t小于3时,无限循环。
while t < 3:
    name = input("请输入帐号:")
    for a in lock_f2:
        if name == a:
            print("抱歉!此帐号已被锁定。")
            exit()

    for b in login_f1:
        if name == ruser:
            t = 0
            while t < 3:
                pwd = input("请输入密码:")
                if pwd == rpwd:
                    print("Welcome!%s" %name)
                    exit()
                else:
                    print("Sorry!wrong password.")
                t += 1
            else:
                print("抱歉,错误次数达到3次,该账户被锁定!")
                f = open(lock.user, w)
                f.write(%s % name)
                f.close()
            exit()

 

测试结果:

正确输入:

Your name:jack
Your password:123.com
Welcome!jack

错误输入:

请输入帐号:jack
请输入密码:123
Sorry!wrong password.
请输入密码:123
Sorry!wrong password.
请输入密码:123
Sorry!wrong password.
抱歉,错误次数达到3次,该账户被锁定!

错误输入3次以后:

请输入帐号:jack
抱歉!此帐号已被锁定。

 

python之用户登录三次锁定

标签:循环   div   pytho   strip   span   无限   判断   login   use   

原文地址:http://www.cnblogs.com/xiaofeiweb/p/6790749.html

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