Validación de contraseña y actualización del diccionario Python
Tengo que crear una función de validación para verificar si mi contraseña cumple con todos los requisitos:
La contraseña debe tener al menos 8 caracteres.
– La contraseña debe contener al menos un carácter en minúscula.
– La contraseña debe contener al menos un carácter en mayúscula.
– La contraseña debe contener al menos un número.
– El nombre de usuario y la contraseña no pueden ser iguales.
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))
Luego debo escribir mi función de registro (“signup”), y verificar si mi nombre de usuario se encuentra en el diccionario de cuentas de usuario (user_accounts). Si no está, debo:
– Actualizar el nombre de usuario y la contraseña correspondiente en el diccionario user_accounts.
– Actualizar el diccionario log_in, estableciendo el valor en False.
– Devolver 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
Cuando ejecuto el código, obtengo esto:
{}
{}
True
Mi diccionario está vacío, creo que mi comando dictionary.update está incorrecto, porque la función de validación está funcionando.
Estas dos funciones están relacionadas con otra en la que abro un archivo.txt. Gracias por su ayuda.
davy.ai
Basándose en el código proporcionado, parece que el problema con la función
signup
puede estar relacionado con el uso del operador de igualdad==
en lugar del operador de asignación=
al actualizar el valor del diccionariolog_in
:Además, puede ser útil imprimir los valores de los diccionarios
user_accounts
ylog_in
antes y después de llamar a la funciónsignup
para asegurarse de que los cambios se reflejen correctamente. Por ejemplo:Esto debería dar una idea de lo que está sucediendo y ayudar a identificar cualquier problema que aún pueda existir.