基于列表和字典实现的用户登录系统(用python实现)

一.需求分析

        用户输入用户名、密码后,根据用户是否已经注册,用户是否在黑名单中,提示用户是否登录成功。

二.任务拆解

        1.登录功能

                (1)输入用户名

                (2)输入密码

                (3)登录验证

                        (3)1用户是否已注册


                                用户名是否正确

通过判断是否登录成功,是否是黑名单,是否是密码错误,这三种情况都不满足就是属于(用户名是否正确的情况)

                        (3)2密码是否匹配


                                密码是否正确

判断用户名是否存在字典(这个字典里面还嵌套了一个字典)里面和和密码是否正确

                        (3)3黑名单用户禁止登录


                                用户名是否在黑名单

判断用户名是否存在字典(这个字典里面还嵌套了一个字典)里面和和密码是否正确加上status(最里面的字典的一个键status)的值是否为True

                (4)验证次数限制

                                三次

通过循环来控制,登录成功了,就不用再次登录,直接break跳出循环

登录代码如下

for j in range(3):#设置登录次数
    user=input("请输入你的用户名:")
    pwd=input("请输入你的密码:")
    if user in users and pwd==users[user]['password'] and users[user]['status']==True:
       print("登陆成功!")
       break
    elif user in users and pwd==users[user]['password'] and not users[user]['status']:
        print('账号失效,请联系管理员!')
    elif user in users and pwd!=users[user]['password']:
        print('密码输入错误,请重试!')
    else:
        print('用户不存在,请先注册!')

三.数据结构设计

        1.保存用户名、密码、黑名单

                        列表
                        字典 

users={
    '小红':{'name':'小红','password':'123','status':True},
    'mia':{'name':'mia','password':'456','status':True},
    'jack':{'name':'jack','password':'789','status':False},
}

​

字典嵌套字典的形式存储数据,更利于查找信息,减少遍历次数

四.源码

#用户名、密码、黑名单

users={
    '小红':{'name':'小红','password':'123','status':True},
    'mia':{'name':'mia','password':'456','status':True},
    'jack':{'name':'jack','password':'789','status':False},
}

for j in range(3):#设置登录次数
    user=input("请输入你的用户名:")
    pwd=input("请输入你的密码:")
    if user in users and pwd==users[user]['password'] and users[user]['status']==True:
       print("登陆成功!")
       break
    elif user in users and pwd==users[user]['password'] and not users[user]['status']:
        print('账号失效,请联系管理员!')
    elif user in users and pwd!=users[user]['password']:
        print('密码输入错误,请重试!')
    else:
        print('用户不存在,请先注册!')

  • 23
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值