Python3_模拟登录

模拟登录_要求:


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']




以上是 Python3_模拟登录 的全部内容, 来源链接: utcz.com/a/52918.html

回到顶部