Bucle determinista en Python
Toca ahora aprender ahora la sintaxis del bucle For en Python, la cual presenta características especiales y diferenciadas en este lenguaje. De hecho, trabajar con un bucle For en Python presupone cierto grado de conocimiento de lo que son los conjuntos de datos y las funciones, contenidos éstos sobre los que aun no hemos trabajado, por lo que implica alterar en cierto modo el orden lógico de aprendizaje de este lenguaje. Aun así, por mantener la coherencia con la temática, será conveniente iniciarse en el manejo de este componente del lenguaje.
- La que se ejecuta sobre un elemento iterable como es un conjunto o colección de datos, como una lista, una tupla, un diccionario o una cadena de texto.
- Y la que sirve para realizar una iteración o repetición cíclica definida en función de unos datos específicos de inicio, finalización y paso.
- vcont es una variable a la que damos la función de contador.
- range(1,11,1) es una función (en realidad los expertos dicen que es una clase) que puede formularse como en este ejemplo, esto es: con tres valores numéricos separados por comas. En caso de escribirse así, el primer valor (1) identifica al valor de inicio del recorrido, el segundo (11) el valor final (también hace función de número de iteraciones o ciclos en los ciclos crecientes) y el tercero (2) el paso o salto de ciclo en ciclo. En su formulación más simple (range(11)) únicamente se especifica el número de ciclos o iteraciones, estado implícitos valores de inicio (0) y el salto (1). El de inicio se considera 0, puesto que 0 es el valor inicial de toda matriz en Python.
1
2
3
4
5
6
7
8
9
10
- El inicio del bucle queda indicado por la sentencia For, su final con la eliminación de la sangría que se aprecia en la segunda línea (print(vCont))
- Como ya dije respecto al condicional if, en Python la sangría no es únicamente un formalismo para facilitar la lectura del código, es parte de la sintaxis del lenguaje.
- Como respuesta obtenemos un listado de números que finaliza en 10, y no en 11 como debería ser atendiendo al segundo valor de range(). Esto es así porque toda matriz en Python se inicia en 0. Nosotros al indicar que el recorrido comience en 1 estamos anulando la escritura de dicho valor inicial.
- En consecuencia range(1,11,1) no es estrictamente equivalente a range(11), ya que el resultado de la segunda formulación incluye 0 como valor de inicio, mientras que en la primera formulación indicamos que ese valor sea 1. Lo que sí se mantiene es que el salto es de 1 en 1 (el tercer valor se supone implícitamente como 1) y el final es 10, por la misma razón que expuse antes.
- También podemos escribir dos parámetros en la función range(), pero serán siempre el valor de inicio y el número de ciclos, si deseamos que esté incluido el parámetro paso estamos obligados a escribir los tres, ya que Python interpreta los dos primeros como valor de inicio y número de ciclos.
- Estos valores tienen que ser siempre números enteros, no decimales.
- Es posible plantear ciclos decrecientes, siendo obligado entonces que el valor de inicio sea superior al de final y que el paso sea un entero negativo.
- También podemos escribir en la sentencia print() el contenido de deseemos; el uso de la variable contador en el código anterior es meramente didáctico. Por ejemplo, podemos repetir un texto x veces o el contenido de una variable a la que previamente hemos asignado una cadena de caracteres.
vtexto="Hola personal"for i in range(5):print(i)print(vtexto)
Respuestas:
0Hola personal1Hola personal2Hola personal3Hola personal4Hola personal
for i in (1,2,3):print(i)Respuesta:
123
Pero también...
for txt in("fresa","manzana","pera"):
print(txt)
Respuesta:
fresa
manzana
pera
- En este caso la variable (i / txt) queda asociada a la lista de elementos que se definen entre paréntesis tras in()
- Y lo que hace el bucle es recorrer esta lista y (mediante print()) escribirla en pantalla.
- Este forma permite, con alguna variación, sustituir esta lista final de sentencia por el nombre de una colección de datos o de una variable de cadena (alfanumérica) que hayan sido previamente declaradas. Por ejemplo:
var = "pelota"
for i in var:
print(i)
Respuesta:
p
e
l
o
t
a
En este caso la lista que antes seguía a in es ahora la variable var. El ciclo recorre var asignando en cada ciclo cada uno de sus componentes (caracteres en este caso) a la variable contador i. Mediante print() mostramos esos componentes por pantalla.
Son muchas las cosas que se pueden decir y hacer con For, pero para que se entiendan mejor es necesario trabajar antes con colecciones de datos, así que prefiero tratarlas más a fondo cuando trabajemos con esos elementos del lenguaje, por lo que queda pendiente para entonces. De momento no sería mala idea entrenar la sentencia For según las formas de uso expuestas en esta entrada.

No hay comentarios:
Publicar un comentario
Comenta esta entrada