用Python写个注册登录功能,供大家参考,具体内容如下
本文是用Python写一个注册登录功能,难度不大,很适合练手
主要就是用列表和字典,以及逻辑判断
用到的第3方库模块是time模块,以及re(正则表达式)模块
这里使用time模块就是为了通过sleep方法,让程序运行有进程感,不是一下子蹦出所有信息
使用re模块就是用于判断密码的复杂性,我们注册软件系统判断我们的密码是否足够复杂就是通过正则表达式去判断的
首先第1步就是导入这2个模块,即
import time
import re
之后需要1个列表用于存储注册的id,需要一个字典,来将ID与密码绑定在一起,因为字典是key:value格式,以ID作为key,密码(password)作为value,就实现了绑定
代码可表示为
user_id=[] #存储用户id
user_dict={} #将id与密码绑定
之后就要询问用户是否注册过账号,如果没注册,就提示用户注册账号,可以通过一个变量接收用户的选择,然后进行对应的操作
choice=input('您是否注册过账号 没有请注册 1:注册 2:登录 3:退出系统')
输入1,就进入到注册界面,注册首先需要输入用户名,输入密码,最后提示用户注册成功
然后需要将用户的id加入到user_id中,用字典存储用户的id和密码,即
user_name=input('请输入用户名')
password=input('请输入密码')
user_id.append(user_name)
for item in user_id:
if item not in user_dict:
user_dict[item]=password
print('注册成功!)
注册好就需要登录了,这个过程相比于注册稍稍麻烦些
首先,需要判断用户输入的id是否注册过(也就是输入的id是否在user_id中)
之后,若存在,还需匹配密码正确与否,正确才可登录。
但是,可能用户会忘记密码,虽然我们可以通过字典查看密码并打印给用户,但是一般不建议这么做,尽量建议用户修改密码,以及用户输入了未注册的ID,需要建议用户注册,提高效率。
判断元素是否在列表中只需要i in list即可,若为真,则元素存在于列表中,反之不在
while 1:
name=input('请输入用户名')
key=input('请输入密码')
if name in user_id:
if user_dict[name]==key:
print('登录成功')
break
else:
print('密码错误 请检查好输入')
q=input('您是否选择更改密码 输入y更改 输入其他退出')
if q=='y':
new_password=input('请输入新密码')
user_dict[name]=new_password
print('密码修改成功!')
else:
break
else:
print('用户名不存在 请检查好输入')
r=input('您是否需要注册账号 输入1注册 其他退出')
if r=='1':
user_login=input('请输入要注册的用户名')
password_login=input('请输入您的登录密码')
user_id.append(user_login)
for num in user_id:
if num not in user_dict:
user_dict[user_login]=password_login
print('注册成功')
else:
break
值得注意的是,一定要先判断id是否存在,而不是直接判断密码,因为没注册的id在字典中没有对应的键,会报错误Keyerror
之后就是退出程序了,建议5s缓冲在退出,不至于太突然 可以使用time.sleep()方法
print('感谢您的使用,程序将在5秒后退出')
for i in range(5):
time.sleep(1)
print('程序将在{}秒后退出'.format(5-i))
至此,项目功能就全部完成了,下面是项目的源代码:
上面没有讲正则表达式,源代码中带有正则表达式判断是否含有字母
import time
print('----------感谢您使用本系统------------')
user_id=[]
user_dict={}
time.sleep(1)
while 1:
choice=input('您是否注册过账号 没有请注册 1:注册 2:登录 3:退出系统')
if choice=='1':
user_name=input('请输入用户名')
while 1:
password=input('请输入密码 需要包含字母')
p=re.compile('^.*[A-Z a-z]+.*$')
if p.match(password):
break
else:
print('密码不够复杂 重新输入')
user_id.append(user_name)
for item in user_id:
if item not in user_dict:
user_dict[item]=password
elif choice=='2':
while 1:
name=input('请输入用户名')
key=input('请输入密码')
if name in user_id:
if user_dict[name]==key:
print('登录成功')
break
else:
print('密码错误 请检查好输入')
q=input('您是否选择更改密码 输入y更改 输入其他退出')
if q=='y':
while 1:
new_password1=input('请输入新密码')
new_password2=input('请确认新密码')
if new_password_1==new_password2:
user_dict[name]=new_password1
break
else:
print('两次密码输入不一致,请重新输入')
print('密码修改成功!')
else:
break
else:
print('用户名不存在 请检查好输入')
r=input('您是否需要注册账号 输入1注册 其他退出')
if r=='1':
user_login=input('请输入要注册的用户名')
password_login=input('请输入您的登录密码')
user_id.append(user_login)
for num in user_id:
if num not in user_dict:
user_dict[user_login]=password_login
print('注册成功')
else:
break
else:
print('感谢您的使用,程序将在5秒后退出')
for i in range(1,5):
time.sleep(1)
print('程序将在{}秒后退出'.format(5-i))
break