Python 3 - Bucles

En general, las sentencias se ejecutan secuencialmente: la primera sentencia de una función se ejecuta primero, seguida de la segunda, y así sucesivamente. Puede haber una situación en la que necesite ejecutar un bloque de código varias veces.

Los lenguajes de programación proporcionan varias estructuras de control que permiten rutas de ejecución más complicadas.

Una declaración de bucle nos permite ejecutar una declaración o grupo de declaraciones varias veces. El siguiente diagrama ilustra una declaración de bucle:

El lenguaje de programación Python proporciona los siguientes tipos de bucles para manejar los requisitos de bucles.

No Señor. Tipo de bucle y descripción
1 while loop

Repite una declaración o un grupo de declaraciones mientras una condición determinada es VERDADERA. Prueba la condición antes de ejecutar el cuerpo del bucle.

2 en bucle

Ejecuta una secuencia de declaraciones varias veces y abrevia el código que administra la variable de bucle.

3 bucles anidados

Puede usar uno o más bucles dentro de cualquier otro bucle while o for.

Declaraciones de control de bucle

Las sentencias de control de bucle cambian la ejecución de su secuencia normal. Cuando la ejecución sale de un ámbito, todos los objetos automáticos que se crearon en ese ámbito se destruyen.

Python admite las siguientes declaraciones de control.

No Señor. Declaración de control y descripción
1 declaración de ruptura

Termina la instrucción de bucle y transfiere la ejecución a la instrucción que sigue inmediatamente al bucle.

2 Continuar declaración

Hace que el bucle omita el resto de su cuerpo e inmediatamente vuelva a probar su condición antes de reiterar.

3 pasar declaración

La declaración de paso en Python se usa cuando se requiere una declaración sintácticamente pero no desea que se ejecute ningún comando o código.

Repasemos brevemente las declaraciones de control de bucle.

Iterador y generador

Iteratores un objeto que permite a un programador atravesar todos los elementos de una colección, independientemente de su implementación específica. En Python, un objeto iterador implementa dos métodos,iter() y next().

Los objetos String, List o Tuple se pueden utilizar para crear un iterador.

list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
   print (x, end=" ")
or using next() function
while True:
   try:
      print (next(it))
   except StopIteration:
      sys.exit() #you have to import sys module for this

UN generator es una función que produce o produce una secuencia de valores usando el método de rendimiento.

Cuando se llama a una función generadora, devuelve un objeto generador sin siquiera comenzar la ejecución de la función. Cuando se llama al método next () por primera vez, la función comienza a ejecutarse hasta que alcanza la declaración de rendimiento, que devuelve el valor obtenido. El rendimiento realiza un seguimiento, es decir, recuerda la última ejecución y la segunda llamada next () continúa desde el valor anterior.

Ejemplo

El siguiente ejemplo define un generador, que genera un iterador para todos los números de Fibonacci.

#!usr/bin/python3

import sys
def fibonacci(n): #generator function
   a, b, counter = 0, 1, 0
   while True:
      if (counter > n): 
         return
      yield a
      a, b = b, a + b
      counter += 1
f = fibonacci(5) #f is iterator object

while True:
   try:
      print (next(f), end=" ")
   except StopIteration:
      sys.exit()