6. Estructuras Repetitivas

Las estructuras repetitivas, bucles o loops nos permiten ejecutar un bloque de instrucciones varias veces, ya sea basándose en una condición o en la iteración de un conjunto de datos.

En el lenguaje de programación Python, encontramos los siguientes tipos de bucles:

  • Bucle "for": Se utiliza para iterar sobre una secuencia o un iterable. Con cada iteración, se ejecuta un bloque de código.

  • Bucle "while": Se utiliza para ejecutar un bloque de código mientras se cumpla una condición. El bloque se ejecutará repetidamente siempre que la condición se evalúe como verdadera.

6.1. for

La estructura "for" es ampliamente utilizada en la programación debido a su simplicidad y versatilidad. Se utiliza para iterar sobre una secuencia o un iterable, ejecutando un bloque de instrucciones para cada elemento de la secuencia.

La estructura "for" es especialmente útil cuando conocemos de antemano la cantidad de veces que queremos que se ejecute el bloque de instrucciones. Esto puede ser útil, por ejemplo, para recorrer una lista, procesar cada elemento de un conjunto de datos o realizar cálculos en un rango de valores predefinido.

Sintaxis

for variable in conjunto:
   bloque de sentencias a repetir

Ejemplo

#!/usr/bin/env python3
# -*- coding:utf-8 *-*

for numero in range(0,10):
    print(numero)

El ejemplo anterior muestra un programa que itera sobre los números del 0 al 9 utilizando la estructura "for" y la función "range()". La función "range()" genera una secuencia de números enteros en un rango dado. En este caso, genera los números del 0 al 9 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).

La sentencia "for" recorre cada uno de los elementos de la secuencia generada por "range()" y ejecuta el bloque de código correspondiente para cada valor. En este ejemplo, simplemente se muestra en la salida el número actual.

Es importante tener en cuenta que la estructura "for" puede iterar sobre cualquier tipo de secuencia o conjunto de datos. No está limitada a números enteros. Puede ser utilizada con listas, tuplas, cadenas de texto u otros tipos de estructuras.

Ejemplo

#!/usr/bin/env python3
# -*- coding:utf-8 *-*

texto = "Hola Mundo"
for letra in texto:
    print(letra)

En este ejemplo, se puede observar que el conjunto de elementos es un texto o una secuencia de letras. En este caso, la estructura "for" iterará sobre el conjunto de letras y mostrará cada uno de los elementos encontrados.

6.2. while

El ciclo "while" es una estructura repetitiva condicional que permite que el programa se repita una o varias veces hasta que se cumpla una condición establecida.

En cada iteración del ciclo, el programa evalúa la condición especificada antes de ejecutar el bloque de código dentro del ciclo. Si la condición es verdadera, se ejecuta el bloque y luego se vuelve a evaluar la condición. Este proceso se repite hasta que la condición se vuelva falsa, momento en el cual el programa continúa con la ejecución del código después del ciclo.

Es importante tener cuidado al utilizar el ciclo "while" para evitar caer en un bucle infinito, donde la condición nunca se vuelve falsa y el ciclo continúa ejecutándose indefinidamente. Para evitar esto, es necesario asegurarse de que en algún momento la condición se vuelva falsa y permita que el ciclo termine.

Sintaxis

while condicion:
   bloque de sentencias a repetir

Ejemplo

#!/usr/bin/env python3
# -*- coding:utf-8 *-*

contador = 0
while contador < 6:
    print('El valor de contador es:', contador)
    contador = contador + 1

Una característica adicional del ciclo "while" es la posibilidad de utilizar la instrucción "else". Esta instrucción se ejecuta cuando la condición del ciclo se vuelve falsa y se sale del ciclo "while".

La estructura del ciclo "while" con la instrucción "else" es similar a las estructuras condicionales. El bloque de código dentro del "else" se ejecuta únicamente si la condición del ciclo nunca se cumple, es decir, si la condición es falsa desde el principio. Esto significa que el bloque dentro del "else" se ejecutará solo una vez después de que el ciclo "while" termine.

El uso de la instrucción "else" en un ciclo "while" puede ser útil para realizar acciones adicionales o tareas de finalización después de que se haya completado el ciclo principal.

while condicion:
   bloque de sentencias a repetir
else:
   bloque de sentencia

Ejemplo:

#!/usr/bin/env python3
# -*- coding:utf-8 *-*

contador = 0
while contador < 6:
    print('El valor de qcontador es:', contador)
    contador = contador + 1
else:
    print("Hemos llegado a 6")

6.3. break

La función break es una declaración que se utiliza dentro de un ciclo (como for o while) para interrumpir la ejecución del ciclo antes de que se haya completado de forma normal. Cuando se encuentra la declaración break, el flujo del programa salta inmediatamente fuera del ciclo y continúa con la siguiente instrucción después del ciclo.

La principal utilidad de break es la capacidad de salir de un ciclo anticipadamente cuando se cumple una condición específica. Por ejemplo, en un ciclo while, si se alcanza cierta condición dentro del ciclo y se ejecuta la instrucción break, el ciclo se terminará inmediatamente, independientemente de la evaluación de la condición del ciclo.

Ejemplo

#!/usr/bin/env python3
# -*- coding:utf-8 *-*

contador = 0
while(contador < 6):
    if contador == 4:
        break
    print('El contador es:', contador)
    contador = contador + 1


for numero in range(0,10):
    if numero == 4:
        break
    print(numero)

En ambos ciclos se ha aplicado una condición para cuando sus índices estén en 4 "rompan los ciclos" utilizando la instrucción break

6.4. continue

La función "continue" es una declaración que se utiliza dentro de un ciclo (como for o while) para pasar a la siguiente iteración del ciclo sin ejecutar las instrucciones restantes dentro del ciclo para esa iteración en particular.

Cuando se encuentra la declaración "continue", el flujo del programa se salta todas las instrucciones restantes dentro del ciclo para esa iteración y se procede con la siguiente iteración.

La función "continue" es útil cuando se desea omitir ciertas iteraciones del ciclo basándose en una condición específica. Por ejemplo, en un ciclo for que recorre una lista, si se encuentra un elemento que cumple una determinada condición, se puede utilizar continue para saltar a la siguiente iteración sin procesar ese elemento en particular.

Ejemplo

#!/usr/bin/env python3
# -*- coding:utf-8 *-*

for numero in range(8):
    if(numero==4 or numero==6):
        continue
    print(numero)

En este caso, se ha utilizado la declaración "continue" en función de una condición específica. Si el valor de numero es igual a 4 o 6, se ejecutará "continue", lo que implica que se tomará un descanso y se omitirán las instrucciones restantes dentro de esa iteración del ciclo. La salida que se obtendrá será el siguiente resultado: numero = 0, 1, 2, 3, 5, 7.

6.5. Instancia pass

La declaración "pass" en Python es una instrucción nula, es decir, no realiza ninguna acción. Se utiliza como marcador de posición cuando se requiere una sentencia en un lugar donde la sintaxis lo exige, pero no se necesita realizar ninguna operación en ese momento.

La declaración "pass" se utiliza comúnmente en los siguientes casos:

  • En bloques de código que aún no se han implementado: Si deseas escribir una función, clase u otra estructura de código, pero aún no tienes el cuerpo o la lógica completa, puedes usar pass para evitar errores de sintaxis. Luego, puedes completar el código más adelante.

  • En bloques de código que no requieren ninguna operación: Si tienes un bloque de código que no realiza ninguna acción, como un bucle o una condición vacía, puedes usar pass para indicar que no se necesita hacer nada en ese punto. Esto puede ser útil para crear una estructura de código inicial y completarla más tarde.

  • En estructuras condicionales o bucles que no requieren un comportamiento específico en ciertos casos: Si hay un caso en el que no necesitas realizar ninguna acción en particular, pero aún necesitas que la estructura condicional o el bucle estén presentes, puedes usar pass para indicar que no se realice ninguna acción en esa situación.

Ejemplo:

#!/usr/bin/env python3
# -*- coding:utf-8 *-*

for numero in range(8):
    if(numero==4 or numero==6):
        pass
    else:
        print(numero)

La declaración pass se utiliza aquí para indicar que no se requiere realizar ninguna operación o acción específica cuando el valor de "numero" es 4 o 6. En lugar de ejecutar un bloque de código, simplemente se omite y se pasa a la siguiente iteración del ciclo.

La salida que se obtendrá es numero = 0, 1, 2, 3, 5, 7.

6.6. Diferencia entre continue y pass

Es posible que la diferencia entre las sentencias "pass" y "continue" no sea muy clara, pero la distinción radica en que la instrucción "pass" no realiza ninguna acción significativa, mientras que la declaración "continue" interrumpe la ejecución del código y se reanuda desde la siguiente línea o iteración del bucle. En resumen, "pass" simplemente pasa por alto una sección de código sin hacer nada, mientras que "continue" salta la iteración actual y pasa a la siguiente.