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# Lambda 知识回顾

    C# Lambda 知识回顾 什么是Lambda表达式 Lambda表达式是C# 3.0中引入的一个新特性,它可以使我们更简洁的书写代码。Lambda表达式本质上是一个匿名方法,它可以被用来创建委托或表达式树。Lambda表达式对于编写LINQ查询表达式或事件处理程序代码非常有用。 Lambda表达式的语法如下: (parameter_list) =>…

    C# 2023年6月6日
    00
  • asp.net GridView 删除时弹出确认对话框(包括内容提示)

    下面是关于“asp.net GridView 删除时弹出确认对话框(包括内容提示)”的完整攻略: 一、需求 我们需要在一个asp.net GridView中删除数据时,弹出确认对话框,同时包含内容提示,确保用户明确知道正在进行的操作。 二、实现步骤 1.在GridView中添加删除按钮。 在GridView的模板列中,添加一个“删除”按钮,并设置Comman…

    C# 2023年6月1日
    00
  • C# [ImportDll()] 知识小结

    C# [ImportDll()] 知识小结攻略 1. 什么是 [ImportDll()] [ImportDll()] 是 C# 中的一个特性,它用于在程序中引入外部的 DLL 库,以便使用其提供的函数或方法。通常情况下,这些 DLL 库由其他编程语言(如 C/C++)等编写,而 C# 使用 [ImportDll()] 将其加入到自己的代码中。 2. 如何使用…

    C# 2023年6月1日
    00
  • C#利用ASP.NET Core开发学生管理系统详解

    这里是C#利用ASP.NET Core开发学生管理系统的完整攻略。 步骤一:创建.NET Core Web应用程序 打开Visual Studio,并以管理员身份运行。 在Visual Studio中选择“文件”>“新建”>“项目”。 选择”.NET Core”类别,然后选择“ASP.NET Core Web应用程序”模板(或“ASP.NET C…

    C# 2023年6月3日
    00
  • C#多线程死锁介绍与案例代码

    C#多线程死锁介绍与案例代码 死锁的概念 死锁(Deadlock)指的是多个线程因相互等待而陷入的一种僵局,每个线程都在等待其他线程释放资源。因此,所有线程都处于无法继续执行的状态,形成了死锁。 死锁产生的原因 死锁是由于多个线程相互等待对方所占用的资源而产生的。举例来说,有两个线程 A 和 B,他们需要占用相互持有的两个资源 R1 和 R2,但由于占用资源…

    C# 2023年5月31日
    00
  • 总结C#网络编程中对于Cookie的设定要点

    下面是总结C#网络编程中对于Cookie的设定要点的完整攻略: 什么是Cookie 在浏览器中,Cookie 是一种存储在客户端计算机上的小文本文件。通过使用Cookie,服务器可以向浏览器发送指令,以便为特定用户和页面提供有关该用户的信息。例如,网站可以使用 Cookie 持久存储用户名和密码信息,以便用户不必每次访问网站时都进行登录。 在 C# 的网络编…

    C# 2023年5月15日
    00
  • Asp.net core实现PushStream视频流推送

    Asp.net core实现PushStream视频流推送攻略 在Asp.net core中,可以使用PushStream技术来实现视频流推送。本攻略将提供详细的步骤和示例说明,演示如何在Asp.net core中实现PushStream视频流推送。 步骤 步骤1:创建一个新的Asp.net core Web应用程序 首先,需要创建一个新的Asp.net c…

    C# 2023年5月17日
    00
  • C#中分部类和分部方法的应用

    当我们在编写一个C#类时,该类通常会包含很多方法和属性。如果类的代码太长,它就可能会变得难以阅读和维护。为了解决这个问题,C#提供了一种将类和方法拆分成多个文件的方法。这就是分部类和分部方法的应用。 分部类 分部类指的是单个类定义在多个文件中。每个文件都包含类定义的一部分,而所有文件的内容被视为一个单独的完整类定义。在C#中,可以使用 partial 关键字…

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