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

3. practicando python_bucles for y while_13 Validación de entrada para inicio de sesión

3. practicando python_bucles for y while_13 Validación de entrada para inicio de sesión.ipynb

"""
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:

¿Lograste implementar? ¡Compártelo con nosotros en el foro!
"""

print("Bienvenido al sistema de registro de usuarios.")

# Inicializar las variables de validación. se definen variables booleanas para controlar el bucle.
nombre_usuario_valido = False
contrasena_valida = False

# Bucle o ciclo while que se ejecuta mientras al menos una de las condiciones no se cumpla
while not nombre_usuario_valido or not contrasena_valida: 
    # 1. Solicitar el nombre de usuario
    nombre_usuario = input("Digite su nombre de usuario: ")

    # 2. Solicitar la contraseña
    contrasena = input("Digite su contraseña: ")

    # 3. Validar el nombre de usuario
    if len(nombre_usuario) >= 5:
        nombre_usuario_valido = True
    else:
        nombre_usuario_valido = False
        print("El nombre de usuario debe tener al menos 5 caracteres.")

    # 4. Validar la contraseña (solo si el nombre de usuario ya es válido o si vamos a verificar
    #    la contraseña de todos modos antes de la siguiente iteración)
    if len(contrasena) >= 8:
        contrasena_valida = True
    else:
        contrasena_valida = False
        # Mostrar el error de contraseña solo si la contraseña no cumple
        print("La contraseña debe tener al menos 8 caracteres.")

    # Nota: El bucle while volverá a evaluar las condiciones:
    # while not nombre_usuario_valido or not contrasena_valida:

# Cuando el bucle termina, ambas condiciones son True. Se imprime mensaje.
print("¡Registro realizado con éxito!")
1 respuesta

Hola Ernesto, espero que estés bien

¡Espero que estés teniendo un buen día! Parece que ya tienes un buen comienzo con tu código para validar el nombre de usuario y la contraseña. Tu lógica es correcta, y el uso del bucle while es una excelente manera de asegurarte de que las condiciones se cumplan antes de permitir el registro.

Aquí hay algunos puntos que podrías considerar para mejorar o verificar:

  1. Mensajes de error claros: Asegúrate de que los mensajes de error sean claros para el usuario, como ya lo estás haciendo. Esto ayuda a que los usuarios sepan exactamente qué deben corregir.

  2. Flujo del programa: Tu programa está configurado para continuar solicitando entradas hasta que ambas condiciones sean verdaderas. Esto es exactamente lo que se necesita.

  3. Pruebas: Asegúrate de probar diferentes combinaciones de entradas para verificar que tu programa maneje todos los casos posibles, como nombres de usuario y contraseñas que son demasiado cortos.

  4. Experiencia del usuario: Podrías considerar agregar un mensaje de bienvenida o instrucciones iniciales para guiar al usuario sobre lo que se espera de ellos.

Tu código es claro y debería funcionar bien para el propósito que tienes. Aquí te dejo el código completo con un pequeño ajuste para mejorar la experiencia del usuario:

print("Bienvenido al sistema de registro de usuarios.")
print("Por favor, asegúrese de que su nombre de usuario tenga al menos 5 caracteres y su contraseña al menos 8 caracteres.")

nombre_usuario_valido = False
contrasena_valida = False

while not nombre_usuario_valido or not contrasena_valida:
    nombre_usuario = input("Digite su nombre de usuario: ")
    contrasena = input("Digite su contraseña: ")

    if len(nombre_usuario) >= 5:
        nombre_usuario_valido = True
    else:
        print("El nombre de usuario debe tener al menos 5 caracteres.")

    if len(contrasena) >= 8:
        contrasena_valida = True
    else:
        print("La contraseña debe tener al menos 8 caracteres.")

print("¡Registro realizado con éxito!")

Espero que esto te ayude y que tu sistema de registro funcione perfectamente. ¡Bons estudos!