首页 > 其他分享 >员工登录系统0.1

员工登录系统0.1

时间:2024-04-02 15:44:50浏览次数:26  
标签:name 登录 0.1 register 员工 dict print input data

在列表中存存有一下数据

data_list = ['dream|521|music-run-sport',
'opp|666|swim-listen-sleep',
'hope_nb|888|eat-code',
'lj_bob_nb|000|read-write'
]

每一个元素对应的分别是

用户名|密码|爱好

获取每一个元素并 做登陆校验

校验用户是否存在,三次密码重试机会,校验密码是数字且必须是三位以内

密码正确登陆成功打印下列指定格式

欢迎用户 username 登陆!您有以下爱好 爱好1&爱好2&爱好3

如果用户名中带有 _nb 则打印 欢迎Vip用户 username 登陆!您有以下爱好 爱好1&爱好2&爱好3

如果用户名以 lj 开头则打印 欢迎尊贵的辣鸡用户 username 登陆!您有以下爱好 爱好1&爱好2&爱好3

lj打印的时候只要后边的用户名,不要lj_

把数据装到用名字当key的字典里,方便查找

data_dict = {}
for data in data_list:
# hobby_data = ' & '.join(data.split('|')[2].split('-')) # 把爱好切分重新连接
hobby_data = data.split('|')[2].replace("-",' & ') # 把爱好切分的第二种方法
data_dict[data.split('|')[0]] = [data.split('|')[1],hobby_data,'visit'] #增加键值对到字典

print(data_dict)

用户登录

def login():
tag=0
while tag<3: #循环3次
tag+=1
name_input = input("please input your name:").strip()
if name_input not in data_dict:
print(f'user {name_input} not exist, try again') # 输入姓名不存在则退出本次循环,重新输入
continue
password_input = input('please input your password:').strip()
if not(password_input.isdigit()) or len(password_input)!=3: # 输入密码格式不正确则退出本次循环,重新输入
print('password is ilegal,try again')
continue
elif password_input == data_dict[name_input][0]: # 输入密码正确则开始判断条件
if 'nb' in name_input and not name_input.startswith('lj'):
print(f'欢迎VIP用户 {name_input.replace("nb","")} 登陆!您有以下爱好 {data_dict[name_input][1]}.')
elif name_input.startswith('lj
'):
print(f'欢迎尊贵的辣鸡用户 {name_input[3:]} 登陆!您有以下爱好{data_dict[name_input][1]}.')
else:
print(f'欢迎用户 {name_input} 登陆!您有以下爱好{data_dict[name_input][1]}.')
break # 输入密码正确条件判断完成后结束循环
else:
print(f'wrong password') # 输入密码不正确退出本次循环
continue

用户注册

def register():
verify_code = 'qaz123456'
# 输入并校验注册姓名是否存在,存在则重新输入

# 输入并校验密码格式
tag_register = 0
while tag_register < 3:
    tag_register+=1
    name_register = input("please input your name:").strip()
    if name_register in data_dict:
        print(f"username {name_register} already exist,please input again:")
        continue
    password_register = input('please input your password with 3 numbers:').strip()
    if not (password_register.isdigit()) or len(password_register) != 3:  # 输入密码格式不正确则退出本次循环,重新输入
        print('password is ilegal,try again:')
        continue

    hobby_register =True           # 输入n个爱好,用enter结束
    hobby_list = []
    while hobby_register != "0":
        hobby_register = input('please input your hobby end with 0 ').strip()
        hobby_list.append(hobby_register)
    hobby_list.pop()
    verify_input = input('are you administrator? input the verify code:').strip()
    if verify_input == verify_code:
        role = 'admin'
    else:
        role = 'visit'
    break
data_dict[name_register]=[password_register,hobby_list,role]
# print(data_dict)

删除用户

def delete_find():
name_check = input("please input your username:")
password_check = input('please input your password:')
if name_check in data_dict and password_check == data_dict[name_check][0]:
if data_dict[name_check][2] and data_dict[name_check][2] == 'admin':
del_find = input("do you want to delete or find: del press 1, find press 2")
if del_find == '1':
all_one = input("do you want to delete all or one: all press a, one press the name")
if all_one == 'a':
data_dict.clear()
elif all_one in data_dict:
del data_dict[all_one]
else:
print('wrong input')
elif del_find == '2':
find_input = input('please input the name:')
if find_input in data_dict:
print(f'the information for {find_input}is: {data_dict[find_input]}')
else:
print('wrong input')
else:
print('you have no right to delete or find')
else:
print('wrong input')

功能选择,主界面

function_choices = '''1.login
2.register
3.delete
4.find'''
function_choices_dict = {}
funcsp = function_choices.split('\n')

print(funcsp)
for choice in funcsp:

choice = choice.split('.')
function_choices_dict[choice[0]]=choice[1]

print(function_choices_dict)

给3次功能选择机会

tag_ = 0
while tag_❤️:
tag_+=1

tag_func = 0
while tag_func<3:  # 给3次输入机会
    tag_func+=1
    function_input = input(f'please input your choice by the list:{function_choices}').strip()
    if function_input not in function_choices_dict:
        print(f'please input the right choice:')
        continue
    elif function_input =="1":   #按功能选择函数
        login()
    elif function_input =='2':
        register()
    elif function_input =='3':
        delete_find()
    else:
        tag_=3

标签:name,登录,0.1,register,员工,dict,print,input,data
From: https://www.cnblogs.com/zenopan101861/p/18110715

相关文章

  • “共享员工”+“低代码与项目管理平台”是未来中小型互联网公司的“真香”吗?
    不用坐班工作地点自有,不用和企业签固定合同,收入还能提升30%-50%,这对打工人来说是“真香”吗?有订单有项目随时加人,不用招聘不用签固定合同,项目结束不用养人,用人成本下降40%-70%,这对互联网公司来说是“真香”吗?央媒点赞的“共享员工”模式,真的是未来中小型互联网公司的发展趋势......
  • 若依登录验证码去除与恢复
    1.运行ruoyi-ui2.修改系统管理系统管理-->参数设置-->账号自助-验证码开关将“参数键值”修改为false(原本是true)3、或者直接修改数据库表sys_config ......
  • 【Easy云盘 | 第三篇】登录注册模块上篇(获取验证码、发送邮箱验证码、登录、注册、重
    前言该Easy云盘非原创,原作者为B站程序员老罗本人不分享本项目源码,只记录项目日记,学习项目技术思路,支持项目付费B站项目学习链接:Springboot项目实战easypan仿百度网盘计算机毕业设计简历项目项目经验(后端)该项目难点:上传文件(大文件的分片与合并、视频文件的分片)、删......
  • Linux——ssh登录很慢解决方法
    1、背景在同一机房中,有多台安装了CentOS7操作系统的服务器,它们的配置除了IP地址不同外基本相同。这些服务器的资源利用率都不高,但在使用SSH连接时,发现有几台服务器连接速度较慢,可能需要等待30-60秒才能提示输入密码,但一旦连接成功后,速度就恢复正常。2、SSH登陆慢原因这种......
  • 头条项目自媒体端无法登录报404NotFound
    发生缘由搭建头条项目自媒体端运行环境电脑系统版本:Windows1064bitIdea:2023.2(UltimateEdition)Maven:apache-maven-3.6.0Docker:Dockerversion26.0.0,build2ae903eMinIO:加载本地镜像,不清楚版本号jdk版本:jdk-8spring.boot.version:2.3.9.RELEASEminio依赖:7.1.0......
  • 使用sddm出现无法登录的原因及解决方法
    配置文件介绍SDDM的默认配置文件为/usr/lib/sddm/sddm.conf.d/default.conf配置加载配置目录中的所有文件,然后按下面列出的顺序加载配置文件,后者具有最高优先级。应该对本地配置进行更改。/usr/lib/sddm/sddm.conf.d系统配置目录/etc/sddm.conf.d本地配置目录/e......
  • 登录认证的方式
    1.1HTTPBasicAuthHTTPBasicAuth:是每次请求API时都提供用户的username和password。简言之,BasicAuth是配合RESTfulAPI使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的R......
  • C# OAuth具体例子实现单点登录
    原理单点登录(SingleSign-On,简称SSO)是一种身份验证技术,它允许用户使用一组凭据(如用户名和密码)登录多个相关但独立的系统,而无需在每个系统中都进行登录操作。下面是一个简单的SSO实现示例: 假设我们有两个应用程序:AppA和AppB。这两个应用程序都信任同一个身份验证服务(Ident......
  • C#网站系统如何监控登录过期
    网站系统监控登录过期通常涉及多个层面的技术和策略。以下是一些建议的方法来实现这一功能:会话管理:会话超时设置:为每个用户会话设置一个超时时间。一旦用户在这个时间段内没有与系统进行任何交互,会话将被视为过期,用户需要重新登录。会话令牌(Token):使用令牌来管理用户的登录状......
  • 游戏开发:生产可用的登录验证流程(C/S模式)
    如何设计一个生产可用的登录验证流程(C/S模式)平台SDK(SoftwareDevelopmentKit)软件中央数据后台(CenterServer)软件服务端(Server)软件客户端(Client)渠道平台登录验证(channelloginverify)软件开发期需要依据平台SDK规范接入平台的账号登录验证流程(比如AppleStore),发起登录时首......