Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Validación de entrada para inicio de sesión

Enunciado

João está desarrollando un sistema de registro para un sitio de lectura. Necesita asegurarse de que los usuarios ingresen un nombre de usuario y una contraseña válidos. Las reglas son las siguientes:

El nombre de usuario debe tener al menos 5 caracteres.
La contraseña debe tener al menos 8 caracteres.
João quiere que el sistema siga solicitando la información hasta que ambas condiciones se cumplan. Cuando el usuario ingresa datos válidos, el programa debe mostrar el mensaje: "¡Registro realizado con éxito!".

Crea un programa que implemente esta lógica usando un bucle while.

Salida esperada:

Digite su nombre de usuario: user
Digite su contraseña: 123
El nombre de usuario debe tener al menor 5 caracteres.
Digite su nombre de usuario: user22
Digite su contraseña: 1234
La contraseña debe tener al menos 8 caracteres.
Digite su nombre de usuario: user22
Digite su contraseña: 12345678
¡Registro realizado con éxito!

Solución

while True:
    usuario:str=input("Digite su nombre de usuario:")
    password:str=input("Digite su contraseña:")
    if len(usuario)>=5 and len(password)>=8:
        print("¡Registro realizado con éxito!")
        break
    else:
        if len(usuario)<5:
            print("El nombre de usuario debe tener al menor 5 caracteres.")  
        elif len(password)<8:
            print("La contraseña debe tener al menos 8 caracteres.")
1 respuesta

¡Hola Jose!

Tu solución está muy cerca de ser perfecta. Sin embargo, hay un pequeño detalle que podrías ajustar para que el programa funcione exactamente como se espera. En tu código, cuando el usuario ingresa un nombre de usuario o contraseña inválidos, el programa imprime solo un mensaje de error, incluso si ambos son incorrectos. Para mejorar esto, puedes cambiar el elif por un if para que ambos mensajes de error se muestren si es necesario. Aquí te dejo cómo quedaría:

while True:
    usuario:str=input("Digite su nombre de usuario:")
    password:str=input("Digite su contraseña:")
    if len(usuario)>=5 and len(password)>=8:
        print("¡Registro realizado con éxito!")
        break
    else:
        if len(usuario)<5:
            print("El nombre de usuario debe tener al menor 5 caracteres.")  
        if len(password)<8:  # Cambiado de 'elif' a 'if'
            print("La contraseña debe tener al menos 8 caracteres.")

Con este ajuste, el programa verificará ambas condiciones y mostrará los mensajes de error correspondientes para cada una si no se cumplen. Espero que esto te ayude a lograr el resultado esperado.