Fundamentos de POO para interfaces gráficas en Python

Menú interactivo

Quiero consolidar este concepto del bucle infinito con un ejemplo interactivo, así que vamos a hacer un programa muy sencillo para la terminal.

En Python hay una instrucción que permite leer una cadena de caracteres por teclado a través del prompt y asignarla a una variable, se llama input:

menu.py

nombre = input("Introduce tu nombre\n> ")
print("Hola", nombre)

Usando esta función en conjunto con un bucle infinito y unas condiciones, podemos crear un programa con un menú interactivo que haga varias cosas, incluyendo una opción para romper el bucle:

import time

while True:
    print("[1] Mostrar la hora\t[2] Mostrar la fecha\t[3] Salir")
    opcion = input("> ")

    if opcion == "1":
        print(time.strftime("%H:%M:%S"))

    if opcion == "2":
        print(time.strftime("%d/%m/%Y"))

    if opcion == "3":
        break

¿Queda más clara la idea no? Este menú se ejecuta indefinidamente pero como hemos incluido la opción 3 para romper el bucle podemos salir del programa en cualquier momento.

Pues los programas gráficos funcionan de forma similar.