es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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 diccionario log_in:

    # Esta línea:
    log_in[username] == False
    
    # Debería cambiarse por:
    log_in[username] = False
    

    Además, puede ser útil imprimir los valores de los diccionarios user_accounts y log_in antes y después de llamar a la función signup para asegurarse de que los cambios se reflejen correctamente. Por ejemplo:

    user_accounts = {}
    log_in = {}
    
    # Imprimir estado inicial:
    print(user_accounts)
    print(log_in)
    
    # Llamar a la función signup:
    username = "Brendon"
    password = "ui67SAjjj"
    success = signup(user_accounts, log_in, username, password)
    print(success)
    
    # Imprimir estado actualizado:
    print(user_accounts)
    print(log_in)
    

    Esto debería dar una idea de lo que está sucediendo y ayudar a identificar cualquier problema que aún pueda existir.

Comments are closed.