🛑Sentencia for
La sentencia de control de flujo for es otra de las estructuras fundamentales de cualquier lenguaje de programación, incluido Python.
1. ¿Qué es la sentencia for
?
for
?Esta estructura nos permite implementar sentencias en Python que se repitan un número finito de veces. Por esta razón a este tipo de sentencias se les denomina bucles.
La sintaxis utilizada para definir la sentencia for
es la siguiente:
<iterable>
es una colección de elementos, por ejemplo, una lista o una tupla.
<variable>
es una variable que recibirá uno de los elementos del objeto <iterable>
en cada una de las itreaciones.
<sentencia(s)>
es el bloque de sentencias en Python que se ejecutará repetidamente.
2. Objetos iterables
En Python los iterables, como su propio nombre indica, son objetos que pueden utilizarse para realizar iteraciones.
Si un objeto es iterable, podemos pasarlo como argumento a la función por defecto de Python iter()
y nos devolverá un iterador.
Como puedes observar, los tipos de datos string, lista, tupla, diccionario, set o frozenset son objetos iterables.
2.1. Iteradores
Un iterador se va a corresponder con un objeto dentro de Python que nos va a devolver valores uno a uno cuando utilicemos la función next()
que viene implementada por defecto.
Una cosa interesante que debemos tener en cuenta es que un iterador almacena internamente el punto en el que se encuentra a la hora de devolverte los valores, de manera que cuando invocamos la función next()
sabe que elemento devolver.
Cuando no quedan elementos para devolver, el iterador emite una excepción:
Entendiendo este concepto de iterador, puede entenderse mucho mejor el concepto de bucle for, pensando en él como una estructura que automáticamente genera una iterador a partir de un elemento iterable y llama repetidamente al método next() asignando el resultado a una variable hasta que no quedan elementos.
3. Claúsula else
en un bucle for
else
en un bucle for
Un bucle for
también puede tener una cláusula else
. La cláusula else
se ejecutará cuando el iterador emita una excepción debido a que no quedan más elementos.
4. Range
Para terminar con esta sección sobre la sentencia for
, me gustaría presentar una función que viene por defecto en Python que se utiliza de manera muy frecuente en combinación con los bucles, la función range()
Una de las cosas que podemos hacer es marcar el principio y el final de la secuencia.
La función range()
también admite aplicar el concepto de stride.
El potencial de esta función no es utilizarla junto con la función list(), ya que consume muchos recursos computacionales, sino combinarla con estructura de control de flujo como el bucle for:
Última actualización