Python3_模拟登录

来源:互联网 发布:淘宝pr剪切教程 编辑:程序博客网 时间:2024/05/16 19:42

模拟登录_要求:


1. 用户输入账号密码进行登录
2. 用户信息保存在文件内

3. 用户密码输入错误三次后锁定用户


逻辑图:

































代码:

#!/usr/bin/env python3# Author:Robert# --*-- coding: utf-8 --*--count = 0   #记录试错次数,计数项赋初始值load = True   #完成功能后退出,赋初始值file = open("用户信息文件.txt",'r',encoding='utf-8')file_lock = open("锁定用户信息文件.txt",'r+',encoding='utf-8')line = eval(file.readline())   #将正确信息中的字符串转换成字典(原字符串为字典格式)line_list = eval(file_lock.readline())   #将正确信息中的字符串转换成列表(原字符串为列表格式)def out():   #定义重复代码,目的是帮助跳出while循环并关闭已打开的文档    global load    load = False   #赋值load,为了跳出while循环    file_lock.close()   #关闭正确用户信息文档    file.close()   #关闭锁定用户信息文档while load:   #判断是否已完成功能    name = input("请输入用户名:")    password = input("请输入密码:")    if name in line and name not in line_list:   #判断用户名是否正确,是否已被锁定        while count < 3:            if password == line[name]:   #判断用户名是否对应正确的密码                print("您已成功登录")                out()   #调用定义out方法                break            else:   #说明未输入的正确的密码                count +=1                msg_count = '第%s次密码输入错误\n'%(count)   #提示输入错误次数                print(msg_count)                if count < 3:   #小于三次错误的输入,可以重新输入                    password = input("密码错误,请重新输入密码:")   #重新输入密码                elif count == 3:   #判断是否已输错三次                    print("已输错3次,账号已锁定")                    line_list.append(name)   #将已锁定信息加入锁定元组中                    file_lock.seek(0)   #输入指针移到开头,如果不移动会产生多个元组                    file_lock.write(str(line_list))   #写入锁定信息                    file_lock.tell()   #获取当前的输入指针位置,如果不获取会产生多个元组                    out()                    break    elif name in line_list:   #判断用户名是否在已锁定用户名中        print("该用户名已被锁定")        out()        break    else:   #说明用户名不在正确用户名信息中        print("该用户名不存在")        out()


用户信息文件.txt

{"name":"password","XiaoMing":"123456","Robert":"234567","Alex":"345678","haha":"123","hahage":"123","hahage2":"123","hahage3":"123"}


锁定用户信息文件.txt

['name']




原创粉丝点击