Python实现用户登录并且输入错误三次后锁定该用户

针对Python实现用户登录并且输入错误三次后锁定该用户,以下是一些攻略和思路供参考。

第一步:输入用户名和密码

在Python中,可以使用input()函数来实现用户输入

username = input("请输入您的用户名:")
password = input("请输入您的密码:")

第二步:判断用户名和密码是否正确

接下来需要判断输入的用户名和密码是否正确,如果错误则进行计数。这里可以使用字典来存储用户的信息,键为用户名,值为密码和错误次数的列表。

users = {'user1': ['123456', 0], 'user2': ['654321', 0]}

if username in users:
    if password == users[username][0]:
        print("登录成功!")
        users[username][1] = 0
    else:
        users[username][1] += 1
        print("密码错误,请重新输入!")
else:
    print("用户名不存在,请重新输入!")

第三步:处理错误次数达到三次的情况

如果错误次数达到三次,则需要锁定该用户。可以使用while循环来实现多次输入密码,直到用户被锁定。

while True:
    username = input("请输入您的用户名:")
    if username in users and users[username][1] < 3:
        password = input("请输入您的密码:")
        if password == users[username][0]:
            print("登录成功!")
            users[username][1] = 0
            break
        else:
            users[username][1] += 1
            print("密码错误,请重新输入!")
    elif username in users and users[username][1] >= 3:
        print("该用户已被锁定,请联系管理员!")
    else:
        print("用户名不存在,请重新输入!")

以上就是实现用户登录并且输入错误三次后锁定该用户的基本思路。需要注意的是,实现完整的用户登录系统还需要进行更多的优化和改进,例如添加密码加密、用户注册功能等。

以下是两条示例,以帮助更好理解代码的实际应用:

示例一

users = {'user1': ['123456', 0], 'user2': ['654321', 0]}

while True:
    username = input("请输入您的用户名:")
    if username in users and users[username][1] < 3:
        password = input("请输入您的密码:")
        if password == users[username][0]:
            print("登录成功!")
            users[username][1] = 0
            break
        else:
            users[username][1] += 1
            print("密码错误,请重新输入!")
    elif username in users and users[username][1] >= 3:
        print("该用户已被锁定,请联系管理员!")
    else:
        print("用户名不存在,请重新输入!")

输出:

请输入您的用户名:user1
请输入您的密码:111111
密码错误,请重新输入!
请输入您的用户名:user1
请输入您的密码:222222
密码错误,请重新输入!
请输入您的用户名:user1
请输入您的密码:333333
该用户已被锁定,请联系管理员!
请输入您的用户名:user2
请输入您的密码:999999
密码错误,请重新输入!
请输入您的用户名:user2
请输入您的密码:888888
密码错误,请重新输入!
请输入您的用户名:user2
请输入您的密码:777777
该用户已被锁定,请联系管理员!
请输入您的用户名:user3
用户名不存在,请重新输入!

示例二

users = {'admin': ['admin123', 0], 'guest': ['guest123', 0]}

while True:
    username = input("请输入您的用户名:")
    if username in users and users[username][1] < 3:
        password = input("请输入您的密码:")
        if password == users[username][0]:
            print("登录成功!")
            users[username][1] = 0
            break
        else:
            users[username][1] += 1
            print("密码错误,请重新输入!")
    elif username in users and users[username][1] >= 3:
        print("该用户已被锁定,请联系管理员!")
    else:
        print("用户名不存在,请重新输入!")

输出:

请输入您的用户名:admin
请输入您的密码:111111
密码错误,请重新输入!
请输入您的用户名:admin
请输入您的密码:222222
密码错误,请重新输入!
请输入您的用户名:admin
请输入您的密码:333333
该用户已被锁定,请联系管理员!
请输入您的用户名:guest
请输入您的密码:guest123
登录成功!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现用户登录并且输入错误三次后锁定该用户 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#编写一个网游客户端的完整步骤

    下面是详细的C#编写一个网游客户端的完整步骤攻略: 一、前期准备 1. 选择游戏引擎 选择一个合适的游戏引擎是开发网游客户端的必要前提。市面上比较知名的游戏引擎包括Unity、Unreal Engine、Cocos2D等,选择合适的引擎需要考虑开发团队的技术能力、游戏类型等因素。 2. 学习网络编程基础 了解网络编程基础,包括基本的网络协议、Socket编程…

    C# 2023年5月15日
    00
  • webBrowser执行js的方法,并返回值,c#后台取值的实现

    执行JS代码是前端Web开发中的常见需求,而通过WebBrowser控件执行JS代码并返回值,是在C#后台中实现前端功能的一种方法。以下是详细的攻略: 1. 创建WebBrowser控件 首先需要在C#的窗体或控制台应用中创建一个WebBrowser控件,代码如下: WebBrowser webBrowser1 = new WebBrowser(); web…

    C# 2023年5月15日
    00
  • 使用C#获取远程图片 Form用户名与密码Authorization认证的实现

    下面是详细讲解 “使用C#获取远程图片Form用户名与密码Authorization认证的实现” 的攻略。 什么是远程图片Form用户名与密码Authorization认证? 在HTTP传输中,我们经常需要进行身份认证,以确保请求者有权限访问资源。其中一种传输方式是要求客户端发送用户名和密码,以验证是否有权访问远程服务器上的资源。这种身份验证方式被称为Aut…

    C# 2023年5月15日
    00
  • C# PropertyInfo类案例详解

    C# PropertyInfo类案例详解 简介 C# PropertyInfo类是System.Reflection命名空间下的一个类,用于描述类的属性成员。通过PropertyInfo类,可以获取类的属性的信息、值和元数据。 使用方法 获取属性信息 可以使用Type类的GetProperty()方法来获取类的属性信息,该方法接受一个字符串类型的参数,即要获…

    C# 2023年6月1日
    00
  • C# 设计模式系列教程-观察者模式

    C# 设计模式系列教程-观察者模式 什么是观察者模式 观察者模式(Observer Pattern)是一种行为型设计模式,主要用于在对象之间建立一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于他的对象都会得到通知并自动更新。观察者模式又被称为发布-订阅模式。 观察者模式实现分析 在观察者模式中,有两种角色,分别是被观察者和观察者。被观察者有一个列…

    C# 2023年6月6日
    00
  • C#多线程学习(一) 多线程的相关概念

    C#多线程学习(一) 多线程的相关概念 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。 而一个进程又是由多个线程所组成的。 什么是线程? 线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等), 但代码区是共享的,即不同的线程可以执行同样的函数。 什么是多线程? 多线程是指程序…

    C# 2023年4月19日
    00
  • 一次.net core异步线程设置超时时间的实战记录

    一次.NET Core异步线程设置超时时间的实战记录 在.NET Core应用程序中,异步线程是非常常见的。但是,如果异步线程执行时间过长,可能会导致应用程序性能下降。为了避免这种情况,我们可以设置异步线程的超时时间。在本攻略中,我们将介绍如何在.NET Core应用程序中设置异步线程的超时时间。 步骤一:创建.NET Core应用程序 首先,需要创建一个.…

    C# 2023年5月17日
    00
  • C# log4net 日志输出的实现示例

    下面我将详细讲解C#log4net日志输出的实现示例,包含如何配置log4net和示例的代码实现。 配置log4net 首先,我们需要在项目中添加log4net的nuget包,并在项目的AssemblyInfo.cs文件中添加以下代码: [assembly: log4net.Config.XmlConfigurator(ConfigFile = "…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部