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# dynamic的好处

    C#中的dynamic类型是.NET Framework 4.0的新增特性。使用dynamic类型可以让C#在编译前不进行类型检查,而是在运行时根据实际的数据类型动态地进行方法和属性调用,从而更加灵活和方便地处理一些类型不确定的数据处理场景。以下是C# dynamic类型的好处的详细讲解以及两条示例说明: 1. 灵活方便地处理任意类型数据 C#的强类型检查机…

    C# 2023年5月31日
    00
  • C#使用第三方组件实现动态解析和求值字符串表达式

    C#使用第三方组件实现动态解析和求值字符串表达式 在C#中,有许多方法可以动态解析和求值字符串表达式。其中,使用第三方组件是一个非常简单和高效的方法。本篇攻略将详细讲解如何使用第三方组件实现动态解析和求值字符串表达式。 前置知识 在阅读本篇攻略之前,你需要具备以下基础知识: C#基础语法 C#反射机制 NuGet包管理器的使用 步骤 步骤一:安装第三方组件 …

    C# 2023年5月31日
    00
  • 关于C#中async/await的用法实例详解

    关于C#中async/await的用法实例详解 什么是async/await async和await是C#语言中的异步编程关键字,使得开发者能够以一种更加简洁、优美的方式编写异步代码。 async用于修饰方法,表示这个方法是异步执行的,不会阻塞当前线程。await用于修饰一个异步操作,表示要等待该操作完成才能继续执行方法。 async/await的用法 1.…

    C# 2023年6月6日
    00
  • C#实现绘制面形图表的方法详解

    当需要在C#中实现绘制面形图表时,可以使用以下方法: 步骤1:安装NuGet包 为了使用绘图库,需要在Visual Studio中安装NuGet包,比较常用的有: OxyPlot.Wpf Live-Charts 其中 OxyPlot.Wpf 比较常用。 可以在 Visual Studio 中通过 NuGet 包管理器搜索并安装这些包。 步骤2:引用OxyPl…

    C# 2023年6月7日
    00
  • 使用.NET升级助手将.NET Framework项目升级为.NET 6

    下面是使用.NET升级助手将.NET Framework项目升级为.NET 6的完整攻略: 一、准备工作 在进行.NET Framework项目升级时, 应该先行备份项目源代码和相关配置文件,以便在升级过程中出现问题时进行恢复。此外,还需要先行安装.NET 6 SDK和Visual Studio 2019或更高版本。 二、升级.NET Framework项目…

    C# 2023年6月3日
    00
  • 使用C#正则表达式获取必应每日图片地址

    下面是使用C#正则表达式获取必应每日图片地址的完整攻略。 1. 确定获取的页面 每日图片地址是在必应的主页上展示的,我们需要确定获取的页面地址为 https://cn.bing.com/。 2. 发起HTTP请求获取页面内容 我们需要使用C#中的HttpClient类,通过其GetAsync方法获取页面内容。 示例代码: HttpClient httpCli…

    C# 2023年6月8日
    00
  • ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)第1/2页

    ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试 简介 GZIP压缩是一种常用的网页页面优化技术。传输时,服务端对浏览器请求的数据进行压缩,减少传输数据量,提高页面的加载速度。本文将介绍ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用方法,并进行应用测试。 使用方法 在ASP.NET网站中实现GZIP压缩,需要使用第三方的压…

    C# 2023年5月31日
    00
  • 详解C#编程中异常的创建和引发以及异常处理

    详解C#编程中异常的创建和引发以及异常处理 在C#编程中,异常是一种表示在程序执行过程中出现的错误或异常情况的机制。当程序执行期间发生异常时,通常需要采取一些措施来处理这些异常,以避免程序崩溃或产生意外的结果。本文将详细讲解C#编程中异常的创建和引发以及异常处理的完整攻略。 异常的创建和引发 要创建和引发异常,需要执行以下几个步骤: 声明并定义异常类。异常类…

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