题目介绍
1. (程序操作题)
综合应用案例:会员登录模块功能模拟
通过对字典和列表的应用,流程控制语句进行实现会员登录模块功能模拟。(不可超前使用函数)
具体要求如下:
1:用户进入欢迎界面,欢迎登录******会员登录系统*****
2:让用户选择注册或者登录(也可以有直接退出系统的选择exit);如果选择注册,注册用户名和密码(其中用户名不能含有敏感词,自己设定敏感词(例如:死,笨,坏等)敏感词提示的时候需要用*代替;密码长度不能少于6位,而且必须由数字和字母和特殊字符组成,不满足这些要求的,做好系统上的print提示,进入重新设置密码环节);注册好的用户名和密码需要存储到数据类型当中。
如果选择登录,可以登录刚刚注册好的,也可以登录验证已经存储好的用户名和密码,用户名、密码任何一个输错三次,自动退出会员登录系统。
代码实现
data =[]
def zhuce():
global data
words={
"死":"*",
"笨":"*",
"坏":"*"
}
name =input("请输入用户名:")
for char in name:
if char in words:
name = name.replace(char,words[char])
print("该用户名含有敏感词,不可注册,重新输入")
zhuce()
num = input("请输入密码:")
if len(num)<6 or num.isdigit() or num.isalpha() :
print("注册密码小于六位数或为纯数字或纯字母,请重新输入")
zhuce()
data.append({"name":name,"num":num})
main()
def denglu(s):
global data
name=input("请输入用户名")
num=input("请输入密码")
for user in data:
if user["name"]==name and user["num"]==num:
print("**********")
print("恭喜你!登录成功!")
print("**********")
return
s -= 1
if s > 0:
print("你还有%d次机会"%s)
denglu(s)
else:
print("登录失败,没有尝试次数了")
def main():
print("******会员登录系统******")
print("******1:登录系统******")
print("******2:注册账号******")
print("******3:退出系统******")
a=int(input("请选择功能"))
if a==1:
s=3
denglu(s)
elif a==2:
zhuce()
elif a==3:
exit(0)
main()
代码解释
-
注册账号 (
zhuce
函数):words
字典中包含了一些敏感词和它们的替换字符,当用户输入的用户名中包含这些敏感词时,会用替换字符替换。- 用户输入用户名,然后通过一个循环遍历用户名的每个字符,如果字符是敏感词中的一个,就将它替换成相应的替换字符,然后输出提示信息重新输入用户名。
- 用户输入密码,然后通过一系列条件判断来验证密码的合法性,例如密码长度大于等于6位,且不是纯数字或纯字母,否则会提示用户重新输入密码。
- 如果用户名和密码都符合要求,则将用户名和密码以字典形式添加到
data
列表中。 -
`password_input.isdigit()` 和 `password_input.isalpha()` 是 Python 字符串对象的方法,用于检查字符串是否只包含数字或只包含字母。
- `password_input.isdigit()`: 如果 `password_input` 中的所有字符都是数字,则返回 `True`,否则返回 `False`。
- `password_input.isalpha()`: 如果 `password_input` 中的所有字符都是字母,则返回 `True`,否则返回 `False`。在注册功能中,这两个条件用于判断密码是否过于简单,即密码是否只包含数字或只包含字母,如果是的话,就认为这个密码太弱,需要重新输入更强的密码。
-
登录系统 (
denglu
函数):- 用户输入用户名和密码。
- 通过循环遍历
data
列表中的每个用户信息,如果找到用户名和密码匹配的用户,则输出登录成功的提示信息。 - 如果未找到匹配的用户,则输出剩余登录次数,并通过递归调用
denglu
函数继续尝试登录,直到剩余登录次数为0。
-
主函数 (
main
函数):- 输出功能菜单,用户可以选择登录系统、注册账号或退出系统。
- 根据用户选择执行相应的功能:登录系统调用
denglu
函数,注册账号调用zhuce
函数,退出系统则退出程序。