验证密码和更新字典 Python
Posted
技术标签:
【中文标题】验证密码和更新字典 Python【英文标题】:Validation Password and updating the dictionary Python 【发布时间】:2022-01-16 07:01:52 【问题描述】:我必须创建一个验证函数来检查我的密码是否满足所有要求:
密码必须至少为 8 个字符。 - 密码必须至少包含一个小写字符。 - 密码必须至少包含一个大写字符。 - 密码必须至少包含一个数字。 - 用户名和密码不能相同
def valid(password, username):
isValid = True
if len(password) < 8:
isValid = False
return isValid
elif password == username :
isValid = False
return isValid
elif not any(x.islower() for x in password):
isValid = False
return isValid
elif not any(x.isupper() for x in password):
isValid = False
return isValid
elif not any(x.isdigit() for x in password):
isValid = False
return isValid
elif isValid:
return isValid
username = "Brendon"
password = "ui67SAjjj"
print(valid(password, username))
然后我必须编写我的注册函数,并检查我的用户名是否在我的 user_accounts(dictionary) 中。如果不是,我必须: - 更新 user_accounts 字典中的用户名和相应的密码。 - 更新 log_in 字典,将值设置为 False。 - 返回 True。
def signup(user_accounts, log_in, username, password):
if username not in user_accounts.keys():
return True
if valid(password)== password:
user_accounts[username] = password
log_in[username]== False
return True
else:
return False
else:
return False
当我运行代码时,我得到了这个:
True
我的字典是空的,我认为我的 dictionary.update 命令是错误的,因为验证功能正在工作。 这两个函数链接到另一个我在其中打开 file.txt 的函数。谢谢你的帮助
【问题讨论】:
您在 user_accounts 中有什么。它只是一个对象还是一组用户凭据对象? 你有if valid(password)== password: user_accounts[username] = password log_in[username]== False return True else: return False
在return语句之后的部分代码,它永远不会到达。
【参考方案1】:
请检查以下功能。可能这就是你所需要的
def valid(password, username):
if len(password) < 8:
return False
elif password == username :
return False
elif not any(x.islower() for x in password):
return False
elif not any(x.isupper() for x in password):
return False
elif not any(x.isdigit() for x in password):
return False
else:
return True
def signup(user_accounts, log_in, username, password):
# username not there, so unable to signup
if username not in user_accounts.keys():
return False
else:
# If password is not valid, return False
if valid(password):
# If both username exists and password is valid, you can check if user credentials are valid and continue
user_accounts[username] = password
log_in[username]== False
return True
else:
return False
【讨论】:
以上是关于验证密码和更新字典 Python的主要内容,如果未能解决你的问题,请参考以下文章