Python 登录/注册 简单封装函数
# 定义指令主菜单MenuNote = '''
=====================欢迎使用用户登录/注册小程序=================
|--- 新建用户:N/n ---|
|--- 登录账号:E/e ---|
|--- 退出程序:Q/q ---|
'''
# 存放用户名密码的字典
userInfo = {}
# 判断用户名唯一
def userNameIsUnique(userName):
if userName in userInfo:
return False
else:
return True
# 判断密码与确认密码是否一致
def userPassCheck(userPass,userPassSecond):
if userPass == userPassSecond:
print("密码设置成功")
print(MenuNote)
return True
else:
print("两次密码输入不一致,请重新设置")
return False
#用户密码匹配校验
def passwordMatching(userName,userPass):
if userInfo == userPass:
print("密码验证通过,登录成功")
return True
else:
print("用户名与密码不匹配")
return False
#空字符串或空字符校验
def isEmpty(dataString):
flag = 1 ifdataString.strip() is '' else 0
returnflag
#设置密码
def setUserPass(userName):
while True:
userpassFirst = input("请为" + userName + "设置密码(第1次)")
if isEmpty(userpassFirst):
print("密码不能为空,请重设")
continue
userPassSecond = input("请为" + userName + "设置密码(第2次)")
isSamePassFlag = userPassCheck(userpassFirst, userPassSecond)
if isSamePassFlag:
userInfo = userpassFirst
print(userInfo)
break
# 新建用户模块
def newUser(userName1):
while True :
userName = input("请输入注册用户名: ") if isEmpty(userName1)else userName1
while True :
if isEmpty(userName):
userName = input("用户名不能为空,请重新输入")
else:
break
isUniqueFlag = userNameIsUnique(userName)
#用户名是否唯一
if isUniqueFlag:
while True:
userpassFirst = input("请为"+userName+"设置密码(第1次):")
if isEmpty(userpassFirst):
print("密码不能为空,请重设")
continue
userPassSecond = input("请为"+userName+"设置密码(第2次):")
isSamePassFlag = userPassCheck(userpassFirst,userPassSecond)
if isSamePassFlag :
userInfo = userpassFirst
print(userInfo)
break
break
else:
print("用户名重复")
# 登录模块
def userLogin():
while True:
userName = input("请输入登录账号: ")
if isEmpty(userName) == 0:
if userNameIsUnique(userName) == False:
userPass = input("请输入密码: ")
isMatch =passwordMatching(userName, userPass)
if isMatch == True:
print(MenuNote)
else:
resetPasswordCode = input('是否重设密码?(Y/N)')
while True:
if resetPasswordCode == 'Y' or resetPasswordCode == 'y':
setUserPass(userName)
break
elif resetPasswordCode == 'N' or resetPasswordCode == 'n':
print('您选择了不重设密码,将回到主页面')
print(MenuNote)
break
else:
resetPasswordCode = input('指令不存在,请重新选择是否重设密码?(Y/N)')
elif userNameIsUnique(userName) == True:
isNewUserCode = input("用户不存在,是否新建?(Y/N)")
while True:
if isNewUserCode == 'Y' or isNewUserCode == 'y':
newUser(userName)
break
elif isNewUserCode == 'N' or isNewUserCode == 'n':
print("你选择了否,将退回主菜单")
print(MenuNote)
break
else:
isNewUserCode = input('你输入的指令错误,请重新输入是否新建(Y:是 N:否)')
break
else:
print("用户不能为空")
# 主函数部分
print(MenuNote)
username = ''
while True:
code = input("请输入指令代码: ")
if(code == 'N' or code == 'n'):
newUser(username)
elif(code == 'E' or code == 'e'):
userLogin()
elif(code == 'Q' or code == 'q'):
print("感谢使用,再见!")
break
else:
print("指令不存在,请重新输入")
业务规则:
①新建用户,用户登录,退出的功能
②用户名,密码不能为空
③登录时用户不存在可直接新建
④用户密码匹配校验
⑤指令不存在的提示
⑥设置密码输2遍
----------------------测试场景--------
序号 场景覆盖测试
1 新建用户,输入唯一用户名,设置2次相同的密码,
2 新建用户,输入唯一用户名,设置2次不相同的密码,
3 新建用户,输入已存在的用户名
4 用户登录,输入不存在的用户名,是否新建选择‘是’,设置2次相同密码
5 用户登录,输入不存在的用户名,是否新建选择‘是’,设置2次不相同密码
6 用户登录,输入不唯一用户名,是否新建选择‘否’
7 用户登录,输入不唯一用户名,是否新建输入不存在的指令
8 用户登录,输入已存在的用户名,密码输入正确
9 用户登录,输入已存在的用户名,密码输入不正确
10 输入不存在的菜单指令
11 退出
12 新建用户,设置密码为空
13 新建用户,设置用户名为空
14 登录,输入密码不对,重设置密码选择‘是’
15 登录,输入密码不对,重设置密码选择‘否’
16 登录,重设用户名为空
17 登录,重设密码为空
页:
[1]