Introducción
El uso de los bucles for y while en Python permite automatizar y repetir tareas de forma eficiente.
Pero a veces, un factor externo puede influir en la forma en que su programa se ejecuta. Cuando esto ocurre, es posible que quieras que tu programa salga completamente de un bucle, que se salte parte de un bucle antes de continuar o que ignore ese factor externo. Puedes realizar estas acciones con las sentencias break
continue
y pass
.
Sentencia Break
En Python, la sentencia break
te ofrece la oportunidad de salir de un bucle cuando se dispara una condición externa. Pondrás la sentencia break
dentro del bloque de código bajo tu sentencia de bucle, normalmente después de una sentencia condicional if
.
Veamos un ejemplo que utiliza la sentencia break
en un bucle for
:
number = 0for number in range(10): if number == 5: break # break here print('Number is ' + str(number))print('Out of loop')
En este pequeño programa, la variable number
se inicializa en 0. Luego una sentencia for
construye el bucle mientras la variable number
sea menor que 10.
Dentro del bucle for
, hay una sentencia if
que presenta la condición de que si la variable number
es equivalente al entero 5, entonces el bucle se romperá.
Dentro del bucle también hay una sentencia print()
que se ejecutará con cada iteración del bucle for
hasta que éste se rompa, ya que está después de la sentencia break
.
Para saber cuándo salimos del bucle, hemos incluido una sentencia final print()
fuera del bucle for
.
Cuando ejecutemos este código, nuestra salida será la siguiente:
OutputNumber is 0Number is 1Number is 2Number is 3Number is 4Out of loop
Esto muestra que una vez que el entero number
se evalúa como equivalente a 5, el bucle se rompe, ya que el programa recibe la orden de hacerlo con la sentencia break
.
La sentencia break
hace que un programa se salga de un bucle.
Declaración de continuidad
La sentencia continue
te da la opción de saltarte la parte de un bucle en la que se dispara una condición externa, pero seguir para completar el resto del bucle. Es decir, se interrumpirá la iteración actual del bucle, pero el programa volverá al inicio del mismo.
La sentencia continue
estará dentro del bloque de código bajo la sentencia del bucle, normalmente después de una sentencia condicional if
.
Utilizando el mismo programa de bucle for
que en la sección Declaración de ruptura anterior, utilizaremos una declaración continue
en lugar de una declaración break
:
number = 0for number in range(10): if number == 5: continue # continue here print('Number is ' + str(number))print('Out of loop')
La diferencia de utilizar la sentencia continue
en lugar de una sentencia break
es que nuestro código continuará a pesar de la interrupción cuando la variable number
se evalúe como equivalente a 5. Veamos nuestra salida:
OutputNumber is 0Number is 1Number is 2Number is 3Number is 4Number is 6Number is 7Number is 8Number is 9Out of loop
Aquí, Number is 5
nunca aparece en la salida, pero el bucle continúa después de ese punto para imprimir líneas para los números 6-10 antes de salir del bucle.
Puede utilizar la sentencia continue
para evitar el código condicional profundamente anidado, o para optimizar un bucle eliminando los casos que se producen con frecuencia y que le gustaría rechazar.
La sentencia continue
hace que un programa se salte ciertos factores que surgen dentro de un bucle, pero que luego continúe con el resto del bucle.
Declaración de paso
Cuando se dispara una condición externa, la declaración pass
permite manejar la condición sin que el bucle se vea afectado de ninguna manera; todo el código continuará siendo leído a menos que se produzca una break
u otra declaración.
Al igual que con las otras sentencias, la sentencia pass
estará dentro del bloque de código bajo la sentencia del bucle, normalmente después de una sentencia condicional if
.
Utilizando el mismo bloque de código anterior, vamos a sustituir la sentencia break
o continue
por una sentencia pass
:
number = 0for number in range(10): if number == 5: pass # pass here print('Number is ' + str(number))print('Out of loop')
La sentencia pass
que ocurre después de la sentencia condicional if
le está diciendo al programa que siga ejecutando el bucle y que ignore el hecho de que la variable number
evalúe como equivalente a 5 durante una de sus iteraciones.
Ejecutaremos el programa y consideraremos la salida:
OutputNumber is 0Number is 1Number is 2Number is 3Number is 4Number is 5Number is 6Number is 7Number is 8Number is 9Out of loop
Al utilizar la sentencia pass
en este programa, observamos que el programa se ejecuta exactamente como lo haría si no hubiera ninguna sentencia condicional en el programa. La sentencia pass
le dice al programa que no tenga en cuenta esa condición y continúe ejecutando el programa como siempre.
La sentencia pass
puede crear clases mínimas, o actuar como marcador de posición cuando se trabaja en un nuevo código y se piensa en un nivel algorítmico antes de martillar los detalles.
Conclusión
Los break
continue
, y pass
en Python te permitirán utilizar los bucles for
y los bucles while
con mayor eficacia en tu código.
Para trabajar más con las sentencias break
y pass
, puedes seguir nuestro tutorial del proyecto «Cómo crear un Twitterbot con Python 3 y la biblioteca Tweepy».