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

INICIO_SESION - Solución con While

registroUsuarios=dict()
while True:
  try:
    nombreUsuario=input('Ingrese su nombre de usuario: ')
    if len(nombreUsuario)<=5:
      print('El nombre de usuario debe tener al menos 5 caracteres')
    else:
      contrasenia=input('Ingrese su contraseña: ')
      if len(contrasenia)<=8:
        print('La contraseña debe tener al menos 8 caracteres')
      else:        
        registroUsuarios[nombreUsuario]=contrasenia
        print('¡Registro realizado con éxito!')        
        if(input('Para ingresar otro usuario presion "S" para salir cualquier tecla').upper()=='S'):
          continue
        else:
          break
  except ValueError:
    print('Los datos ingresados no cumplen con las condiciones')

for usuario,contrasenia in registroUsuarios.items():
  print(f'Usuario: {usuario} - Contraseña: {contrasenia}')
1 respuesta

Hola Eva, espero que estés bien

¡Espero que estés bien! He revisado tu código y parece que estás en el camino correcto para implementar la lógica de validación de usuario y contraseña usando un bucle while. Sin embargo, hay un pequeño detalle que podrías ajustar para que el programa funcione exactamente como se espera en el ejercicio.

En tu código, después de registrar un usuario exitosamente, preguntas si el usuario quiere ingresar otro usuario y continúas o rompes el bucle basado en esa respuesta. Según el ejercicio, el programa debería simplemente terminar después de un registro exitoso, sin necesidad de preguntar si quieres continuar.

Aquí tienes una versión ajustada de tu código:

registroUsuarios = dict()

while True:
    try:
        nombreUsuario = input('Ingrese su nombre de usuario: ')
        if len(nombreUsuario) <= 5:
            print('El nombre de usuario debe tener al menos 5 caracteres')
        else:
            contrasenia = input('Ingrese su contraseña: ')
            if len(contrasenia) <= 8:
                print('La contraseña debe tener al menos 8 caracteres')
            else:
                registroUsuarios[nombreUsuario] = contrasenia
                print('¡Registro realizado con éxito!')
                break  # Termina el bucle después de un registro exitoso
    except ValueError:
        print('Los datos ingresados no cumplen con las condiciones')

for usuario, contrasenia in registroUsuarios.items():
    print(f'Usuario: {usuario} - Contraseña: {contrasenia}')

Con este ajuste, el programa seguirá pidiendo los datos hasta que ambos, el nombre de usuario y la contraseña, sean válidos, y luego terminará después de mostrar el mensaje de éxito.

Espero que esta sugerencia te sea de ayuda. ¡Bons estudios!