Menú de texto con bucle infinito en Python

Aditya Raj 30 enero 2023
  1. Menú de texto con bucle infinito en Python
  2. Terminar el menú de texto con un bucle infinito usando la instrucción break en Python
  3. Terminar el menú de texto con bucle infinito usando la variable Bandera en Python
  4. Conclusión
Menú de texto con bucle infinito en Python

Podemos usar el bucle while y las declaraciones if-else para implementar varias herramientas en un programa de Python. Este artículo creará un menú de texto con un bucle infinito en Python.

Menú de texto con bucle infinito en Python

Usaremos un bucle while con sentencias condicionales para crear un menú de texto con un bucle infinito. Dentro del bucle while, primero le mostraremos al usuario varias opciones y, después de mostrar las opciones, tomaremos información del usuario.

Después de tomar la entrada, el programa imprimirá la salida deseada. Finalmente, el programa imprimirá las opciones.

Esto continuará hasta que el usuario finalice el programa manualmente.

Para entender esto, considere el siguiente programa.

def options():
    print("Enter 1 to print 'Hi'.")
    print("Enter 2 to print 'Hello'.")
    print("Enter 3 to print 'Namaste'.")
    print("Enter 4 to print 'Bonjour'.")
    print("Enter 5 to print 'Hola'.")


while True:
    options()
    option = int(input())
    if option == 1:
        print("Hi")
    elif option == 2:
        print("Hello")
    elif option == 3:
        print("Namaste")
    elif option == 4:
        print("Bonjour")
    elif option == 5:
        print("Hola")

Producción :

Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
1
Hi
Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
2
Hello
Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
^D
Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 11, in <module>
    option = int(input())
EOFError: EOF when reading a line

En el código anterior, primero hemos definido la función options() para imprimir varias opciones disponibles para el usuario. Después de eso, creamos un bucle while.

Dentro del bucle while, primero ejecutamos la función options(). Después de eso, le pedimos al usuario que ingrese un número.

Posteriormente, convertimos la entrada en un número entero usando la función int() porque la función input() devolvió una cadena.

El programa imprimió un mensaje de acuerdo con la entrada. Después de eso, el programa volvió a mostrar las opciones.

Esto continuó hasta que el usuario finalizó manualmente el programa.

Como se explica en las siguientes secciones, podemos usar varias formas de terminar el bucle while para avanzar en el programa.

Terminar el menú de texto con un bucle infinito usando la instrucción break en Python

Le pediremos al usuario que presione cualquier número que no sean las opciones dadas para terminar el bucle while. Después de eso, incluiremos un bloque else en las declaraciones condicionales.

Si el usuario ingresa cualquier número diferente a las opciones especificadas, imprimiremos Bye y saldremos del bucle while usando la instrucción break, como se muestra en el siguiente ejemplo.

def options():
    print("Enter 1 to print 'Hi'.")
    print("Enter 2 to print 'Hello'.")
    print("Enter 3 to print 'Namaste'.")
    print("Enter 4 to print 'Bonjour'.")
    print("Enter 5 to print 'Hola'.")
    print("Enter any other number to terminate.")


while True:
    options()
    option = int(input())
    if option == 1:
        print("Hi")
    elif option == 2:
        print("Hello")
    elif option == 3:
        print("Namaste")
    elif option == 4:
        print("Bonjour")
    elif option == 5:
        print("Hola")
    else:
        print("Bye")
        break

Producción :

Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
Enter any other number to terminate.
1
Hi
Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
Enter any other number to terminate.
3
Namaste
Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
Enter any other number to terminate.
12
Bye

En el ejemplo anterior, cuando el usuario ingresa cualquier número que no sea del 1 al 5, la ejecución del programa ingresa al bloque else de las declaraciones condicionales. Por lo tanto, el programa imprime Bye, y se ejecuta la sentencia break.

Debido a esto, la ejecución del programa sale del bucle while.

Terminar el menú de texto con bucle infinito usando la variable Bandera en Python

En lugar de usar la instrucción break, podemos usar una variable flag para controlar la ejecución del bucle infinito. Primero, inicializaremos una variable flag a True antes de ejecutar el bucle while.

Luego, ejecutaremos el bucle while si la variable flag es True. Dentro del bucle while, si el usuario ingresa cualquier número diferente a las opciones especificadas, imprimiremos Bye y asignaremos el valor False a la variable flag.

Una vez que la variable flag se convierte en False, la ejecución del bucle while terminará automáticamente. Puedes observar esto en el siguiente código.

def options():
    print("Enter 1 to print 'Hi'.")
    print("Enter 2 to print 'Hello'.")
    print("Enter 3 to print 'Namaste'.")
    print("Enter 4 to print 'Bonjour'.")
    print("Enter 5 to print 'Hola'.")
    print("Enter any other number to terminate.")


flag = True
while flag:
    options()
    option = int(input())
    if option == 1:
        print("Hi")
    elif option == 2:
        print("Hello")
    elif option == 3:
        print("Namaste")
    elif option == 4:
        print("Bonjour")
    elif option == 5:
        print("Hola")
    else:
        print("Bye")
        flag = False

Producción :

Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
Enter any other number to terminate.
1
Hi
Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
Enter any other number to terminate.
3
Namaste
Enter 1 to print 'Hi'.
Enter 2 to print 'Hello'.
Enter 3 to print 'Namaste'.
Enter 4 to print 'Bonjour'.
Enter 5 to print 'Hola'.
Enter any other number to terminate.
12
Bye

En el ejemplo anterior, una vez que la variable flag se convierte en False, la ejecución del bucle while finaliza. Esto se debe a que el intérprete de Python primero verifica si la variable flag contiene el valor True; si es así, entonces sólo se ejecuta el bucle while.

Una vez que asignamos el valor False a la variable flag, el intérprete comprueba el valor en la variable flag antes de la siguiente ejecución del bucle while. Al ver que el valor de la variable flag es False, finaliza el bucle while.

Conclusión

En este artículo, creamos un menú de texto con un bucle infinito usando el bucle while y declaraciones condicionales en Python. También discutimos cómo podríamos terminar la ejecución del bucle infinito utilizando una sentencia break y una variable flag.

Autor: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Artículo relacionado - Python Loop