用户登录注册升级版
1650 字
8 分钟
用户登录注册升级版
【一】需求介绍
- 用户可以注册,并将注册信息临时保存起来,登陆时可根据指定用户名或密码进行登陆
- 设定好用户名和密码,用户通过输入指定的用户名和密码进行登陆
- 最大尝试次数:用户最多尝试猜测3次
- 最大尝试次数后:如3次后,问用户是否继续登陆
- 如果回答Y或y,就再给3次机会,提示【还剩最后三次机会】
- 3次都猜错的话登录结束
- 如果回答N或n,登陆结束!
- 如果格式输入错误,提示【输入格式错误,请重新输入:】
- 如果猜对了,登陆结束!
【二】功能分析
- 用户选择注册功能,存储用户名和密码
- 设定猜测次数
- 用户名和密码正确
- 登陆成功
- 用户名和密码错误
- 输入 y 进行二次尝试
- 输入 n 退出登陆,程序结束
【三】代码实现
【1】注册功能
# 【1】设定存储用户信息的 列表user_data_list = []
# 【一】注册功能while True: # 【2】用户输入用户名和密码 username_register_input = input("请输入用户名 :>>>> ") password_register_input = input("请输入密码 :>>>> ") # 【3】拼接用户信息 user_data = f"{username_register_input}|{password_register_input}" # 【4】存储到用户信息列表 user_data_list.append(user_data) # 查看用户信息列表 # print(user_data_list) age_input = input("请输入是否继续注册(Y/N) :>>>> ") if age_input == 'Y' or age_input == 'y': print(f"欢迎再次注册!") elif age_input == 'N' or age_input == 'n': print(f"感谢您的注册!下次再会!") break else: print(f"意料之外的错误哦!") break【2】登陆功能
# 设定尝试次数(最多尝试3次)和初识尝试次数(1)和标志位can_choice = 3count = 1tag_login = True# 【1】获取用户信息字典 (假定已存储用户信息)user_data_list = ['dream|521', 'hope|369']# 【二】登录功能while count <= can_choice and tag_login: # 每尝试一次,循环次数 + 1 (可尝试次数 - 1 ) count += 1 # 【2】用户输入用户名和密码 username_input = input("请输入用户名 :>>>> ").strip() password_input = input("请输入密码 :>>>> ").strip()
# 【3】遍历字典,拿到每一个元素 for user_data in user_data_list: true_username, true_password = user_data.split('|') # 【7】校验输入的用户名和密码是否一致 if true_username == username_input and password_input == true_password: print(f"用户 {username_input} :>>>> 登陆成功!") # 登陆成功后程序结束 -- 标志位重置为 False tag_login = False break else: print(f"用户 {username_input} :>>>> 用户名或密码错误!") print(f"还剩 :>>>> {can_choice + 1 - count} 次机会") # 【8】增加重试机制 : 输入 Y 将尝试次数重置为1,否则直接退出 if count == can_choice + 1: age_input = input("请输入是否继续尝试(Y/N) :>>>> ") if age_input == 'Y' or age_input == 'y': print(f"欢迎再次尝试!祝您成功!") count = 1 elif age_input == 'N' or age_input == 'n': print(f"感谢您的尝试!下次再会!") break else: print(f"意料之外的错误哦!") break【3】查看用户信息功能
# 【1】获取用户信息字典 (假定已存储用户信息)user_data_list = ['dream|521', 'hope|369']print(user_data_list)【4】功能整合
# 设定功能字典func_list = ''' --- 请输入序号选择功能 --- 1.注册功能 2.登录功能 3.查看全部信息'''# 设定尝试次数(最多尝试3次)和初识尝试次数(1)和标志位can_choice = 3count = 1# 【1】用户信息列表user_data_list = []while True: print(func_list) function_id = input("请输入功能ID(n退出) :>>>> ") if function_id == 'n' or function_id == 'N': print(f"感谢您的使用!") break function_id = int(function_id) # 【一】注册功能 if function_id == 1: while True: # 【2】用户输入用户名和密码 username_register_input = input("请输入用户名 :>>>> ") password_register_input = input("请输入密码 :>>>> ") # 【3】拼接用户信息 user_data = f"{username_register_input}|{password_register_input}" # 【4】存储到用户信息列表 user_data_list.append(user_data) # 查看用户信息列表 # print(user_data_list) age_input = input("请输入是否继续注册(Y/N) :>>>> ") if age_input == 'Y' or age_input == 'y': print(f"欢迎再次注册!") elif age_input == 'N' or age_input == 'n': print(f"感谢您的注册!下次再会!") break else: print(f"意料之外的错误哦!") break # 【二】登录功能 elif function_id == 2: tag_login = True while count <= can_choice and tag_login: # 每尝试一次,循环次数 + 1 (可尝试次数 - 1 ) count += 1 # 【2】用户输入用户名和密码 username_input = input("请输入用户名 :>>>> ").strip() password_input = input("请输入密码 :>>>> ").strip()
# 【3】遍历字典,拿到每一个元素 for user_data in user_data_list: true_username, true_password = user_data.split('|') # 【7】校验输入的用户名和密码是否一致 if true_username == username_input and password_input == true_password: print(f"用户 {username_input} :>>>> 登陆成功!") # 登陆成功后程序结束 -- 标志位重置为 False tag_login = False break else: print(f"用户 {username_input} :>>>> 用户名或密码错误!") print(f"还剩 :>>>> {can_choice + 1 - count} 次机会") # 【8】增加重试机制 : 输入 Y 将尝试次数重置为1,否则直接退出 if count == can_choice + 1: age_input = input("请输入是否继续尝试(Y/N) :>>>> ") if age_input == 'Y' or age_input == 'y': print(f"欢迎再次尝试!祝您成功!") count = 1 elif age_input == 'N' or age_input == 'n': print(f"感谢您的尝试!下次再会!") break else: print(f"意料之外的错误哦!") break # 【3】查看用户全部信息 elif function_id == 3: print(user_data_list)【四】参考代码
# 1.先定义一个用于存储用户数据的列表data_list = []# 2.循环打印程序的功能 供用户选择执行while True: # 3.打印程序中所有的功能编号 print(""" 1.注册 2.登录 3.查看所有用户信息 """) # 4.获取用户想要执行的功能编号 choice = input('请输入功能编号>>>:').strip() # 5.判断用户想要执行的功能 if choice == '1': # 6.获取用户的用户名和密码 针对一些小的判断逻辑 你们自己去考虑 username = input('username>>>:').strip() password = input('password>>>:').strip() # 6.1.判断用户名不能冲突 for user in data_list: # 'jason|123' 'tony|321' # 6.2.如果考虑密码是用户名 用户名是其他 if username == user.split('|')[0]: print('用户名已存在') break else: # 7.将用户名和密码拼接到一起 user_data = f'{username}|{password}' # 'jason|123' # 8.添加到列表中 data_list.append(user_data) # 9.提示用户注册成功 print(f'{username}注册成功') elif choice == '2': # 10.获取用户名和密码 username = input('username>>>:').strip() password = input('password>>>:').strip() # 11.两种判断思路 思路1:先比对用户名 之后比对密码 思路2:直接拼接比对整体结构 user_data1 = f'{username}|{password}' # 12.循环比对 for data in data_list: if user_data1 == data: print('登录成功') break else: print('用户名或密码错误') elif choice == '3': print(data_list) else: print('你能不能好好的输 眼瞎是吧!!!')支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
C 语言发展史
编程语言了解 C 语言从 BCPL、B 语言到现代标准 C 的发展历程、核心特点与应用领域。
2
C 语言开发环境的安装与配置
编程语言在 Windows、Linux 与 macOS 上安装 C 工具链,配置编辑器,并编译运行第一个 C 程序。
3
C 语言初识:程序运行机制与基本结构
编程语言认识 C 程序从源代码到运行的完整流程,以及基础语法和程序的基本结构。
4
C 语言基础:注释、关键字、变量与数据类型
编程语言学习 C 语言的注释、关键字、标识符、常量、变量和基本数据类型等基础知识。
5
C 语言数据类型
编程语言理解 C 语言的数据类型体系,包括基本类型、整数类型、浮点类型和逻辑类型。
随机文章随机推荐














