Articles

Cómo usar las sentencias Break, Continue y Pass al trabajar con bucles en Python 3

Posted on

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 breakcontinue 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:

Output
Number 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:

Output
Number 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:

Output
Number 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 breakcontinue, 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».

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *