Fundamentos de POO para interfaces gráficas en Python

Bucles infinitos

En el curso de Python para principiantes ya creamos algunos scripts o guiones de código que se ejecutan de arriba abajo y finalizan con la última instrucción.

Ahora bien, si os lo paráis a pensar los programas raramente funcionan de esa forma, no se cierran solos sino que normalmente se mantienen abiertos hasta que nosotros los cerramos.

Para poder mantenerse en marcha, el código de los programas funciona dentro de lo que se conoce como "bucles infinitos" para ejecutar sus instrucciones permanentemente.

En Python un bucle infinito se puede crear con la instrucción while para repetir un bloque de código mientras se cumple una condición.

Dejadme enseñaros como crear un cronómetro en Python porque es un ejemplo muy ilustrativo:

Curso-GUI/cronometro.py

import time

segundero = 0

while True:
	time.sleep(1)   # esperamos un segundo
	segundero += 1  # segundero = segundero + 1
	print(segundero)

El problema de los bucles infinitos es que nunca dejan de ejecutarse, para finalizarlos hay que cerrar el proceso forzosamente con Control+C.

La forma de finalizar un bucle infinito es romper su ejecución desde dentro, algo que en Python se puede hacer condicionando el código y utilizando la instrucción break:

import time

segundero = 0
maximo = 5

while True: 
	time.sleep(1)   # esperamos un segundo
	segundero += 1  # segundero = segundero + 1
	print(segundero)

	if segundero == maximo:
		print("Se ha llegado al límite, rompiendo el bucle infinito")
		break

En resumen, mientras que un script es una serie de instrucciones que se ejecutan y finalizan de forma natural, un programa son unas instrucciones que se repiten de forma indefinida hasta que se acciona en su interior el mecanismo que las finaliza.

Sin los bucles infinitos no tendríamos programas gráficos, ni servicios web y mucho menos videojuegos, por eso son tan importantes.