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

Python作业之三次登陆锁定用户

时间:2017-09-03 00:27:27      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:输入密码   os.path   lease   打开文件   lib   login   方式   red   hang   

                                         作业之三次登陆锁定用户

作业要求如下:

1. 输入用户名和密码

2. 认证成功提示欢迎信息

3. 认证失败三次锁定用户

具体代码如下:

方法1:

import os#导入os模块
if os.path.exists(‘d:\\login_name_list.txt‘):#使用os模块的方法来检测该文件是否存在
    with open(‘d:\\login_name_list.txt‘) as f:#打开文件,默认只读方式
        f_read = f.read().strip()
    if len(f_read) > 0:
        print(‘%s 该用户已被锁定(%s is locked)!‘% (f_read,f_read))
        exit()
else:
    with open(‘d:\\login_name_list.txt‘,‘w‘) as f:#创建文件
        f.write(‘ ‘)
name_password_list = [{‘zhang‘:‘123‘},{‘lisi‘:‘234‘}]#声明用户名数据库
lock_name = []#声明空的被锁定用户的列表
judge = {}#声明空的存储用户名和密码的字典
while True:
    login_name = input(‘请输入用户名(Please input name):‘).strip()#输入用户名
    login_password = input(‘请输入密码(Please input password):‘).strip()#输入密码
    judge[login_name] = login_password#把用户名和密码存储到字典中
    if judge in name_password_list:#判断存储用户名和密码的字典是否存在数据库中
        print(‘欢迎来到Python课堂(Welcome to PythonClass)!‘)
        break
    else:
        print(‘用户名或密码错误(The name or password is error)!‘)
        lock_name.append(login_name)#添加错误的用户名到锁定用户名的列表中
        if lock_name.count(login_name) == 3:#判断错误的用户名是否等于三次
            with open(‘d:\\login_name_list.txt‘,‘w‘) as f_login:#打以写入的模式开文件
                f_login.write(login_name)
            print(‘%s 该用户已被锁定(%s is locked)!‘%(login_name,login_name))
            break

注:该方法实现的功能是:只有当同一个用户名输入错误次数超过三次时,该用户将会被锁定。 方法2:

import os#导入os模块
if os.path.exists(‘d:\\login_name_list.txt‘):#使用os模块的方法来检测该文件是否存在
    with open(‘d:\\login_name_list.txt‘) as f:#打开文件,默认只读方式
        f_read = f.read().strip()
    if len(f_read) > 0:
        print(‘%s 该用户已被锁定(%s is locked)!‘% (f_read,f_read))
        exit()
else:
    with open(‘d:\\login_name_list.txt‘,‘w‘) as f:#创建文件
        f.write(‘ ‘)
name_password_list = [{‘zhang‘:‘123‘},{‘lisi‘:‘234‘}]#声明用户名数据库
lock_name = []#声明空的被锁定用户的列表
judge = {}#声明空的存储用户名和密码的字典
for i in range(3):
    login_name = input(‘请输入用户名(Please input name):‘).strip()#输入用户名
    login_password = input(‘请输入密码(Please input password):‘).strip()#输入密码
    judge[login_name] = login_password#把用户名和密码存储到字典中
    if judge in name_password_list:#判断存储用户名和密码的字典是否存在数据库中
        print(‘欢迎来到Python课堂(Welcome to PythonClass)!‘)
        break
    else:
        print(‘用户名或密码错误(The name or password is error)!‘)
else:
    print(‘错误次数太多(Error is too many)!‘)
    with open(‘d:\\login_name_list.txt‘,‘w‘) as f_login:#打以写入的模式开文件
        f_login.write(login_name)
        print(‘%s 该用户已被锁定(%s is locked)!‘%(login_name,login_name))

注:该方法实现的功能是:只有三次错误的机会,当第三次错误时,将会把第三次错误的用户名进行锁定。

Python作业之三次登陆锁定用户

标签:输入密码   os.path   lease   打开文件   lib   login   方式   red   hang   

原文地址:http://www.cnblogs.com/single-boy/p/7468360.html

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