Bucles for, while en Python: Sintaxis, Ejemplos de su uso

Bucles for, while en Python: Sintaxis, Ejemplos de su uso

noviembre 7, 2018 0 Por Pyromaniac

En esta entrada vamos a ver los bucles for, while en python. Para comenzar vamos a ver que es un bucle y para que nos sirve en programacion:

A veces voy por la vida pensando que tal vez estemos atrapados en un bucle infinito producto de un ordenador gigante!

-Basta ya de filosofía!! Este es un blog de programacion!

-Ho cierto! Vamos a ver esos bucles!

Un bucle o ciclo en programacion es la ejecución  continua de un determinado bloque de código mientras una condición asignada se cumple..

Es decir por ejemplo que un bucle es una parte de nuestro programa que se ejecuta continuamente mientras se cumpla determinada condición. Existen también los bucles infinitos que son aquellos donde la condición nunca se cumple.

Para recordar y ejemplificar en la vida real un bucle supongamos que tu debes viajar de un punto “a” a un punto “b” de tu ciudad y lo debes hacer en bicicleta. Obviamente tu vas a pedalear desde el punto “a” al punto “b” repitiendo este proceso como un bucle hasta que se cumplan algunas condiciones:

-Que llegues a destino (“Punto b”)

-Que te canses

-O debas parar de pedalear por algún problema externo, como el tráfico.

Si estas condiciones no se cumplieran tu deberías pedalear infinitamente. Aunque en la vida real esto es obviamente “imposible” resulta clara la ejemplificación de un bucle.

En python existen diferentes tipos de bucles y nos van a servir para ejecutar nuestro código hasta obtener determinado resultado. Veamos los tipos de bucles:

 

 

Bucles For

Los bucles for en python iteran sobre los ítem de cualquier secuencia (lista, cadena, diccionario) en el orden en que aparecen en la secuencia.

Iterar: significa realizar cierta acción repetidas veces y en el caso del bucle for hace referencia a recorrer elementos iterables, como puede ser una lista en búsqueda de un elemento en particular.

El bloque de código del bucle se suele llamar “cuerpo del bucle” y cada repetición se suele llamar iteración.

Para no complicarnos tanto podemos entender al bucle for como el encargado de recorrer una secuencia buscando los elementos que cumplen determinada condición y realizando alguna instrucción según sea especificada. Es importante recalcar que dicho elemento debe ser “iterable” es decir recorrible.

Un bucle for podría verse como hojear un libro pagina por pagina y extraer solo las imágenes. El hecho de extraer solo las imágenes sería la condición y una vez extraídas todas se habría cumplido por lo que el bucle se detendría.

Si has comprendido el uso del bucle for, es hora de ver su sintaxis. Venga que es muy sencillo!

 

 

Sintaxis

En el caso de un bucle for se debe especificar la variable donde se alojarán los ítem del elemento iterable (lista, diccionario, cadena, etc.)

Se coloca la sentencia for seguida de la variable donde se almacenarán los ítem y luego del operador “in” el elemento a iterar:

 

Una vez que se termina de iterar el elemento el bucle se detiene, es decir que se ejecutará mientras se cumpla la condición, veamos algunos ejemplos sencillos de bucles for.

 

 

Ejemplos

En este ejemplo vamos a iterar una lista de números y vamos a extraer solo aquellos que son pares:

Resultado: 2, 4, 6, 8, 10, 12, 14

Aquí estamos creando un bucle que itera sobre la lista números almacenando los ítem de ella en la variable “num” e imprimiendo aquellos que cumplen la condición de “al dividirlos por 2, da resto cero”. Esto lo hacemos utilizando el operador aritmético “%” y el de comparación “==” que vimos anteriormente.

Si tu ejecutas este código verás que solo ha de imprimir los números pares, pero si cambiáramos el operador de comparación “==” (exactamente igual) por “!=” (diferente) a cero, nos imprimiría los impares. Prueba lo siguiente:

Resultado: 1, 3, 5, 7, 9, 11, 13

 

El bucle es el mismo, pero solo hemos cambiado la condición y en este caso nos imprimirá los números impares de la lista “números”.

 

 

Usos comunes del bucle for:

Iterar Listas

Como vimos anteriormente es útil para iterar en listas, pero venga veamos otro ejemplo (que para eso estamos). En este caso vamos a iterar una lista para contar los caracteres de cada palabra que contiene utilizando la función interna de cadenas len():

Resultado:

Peine ###Longitud: 5
Pelo ###Longitud: 4
Ventana ###Longitud: 7
Refrigerador ###Longitud: 12
Adolescente ###Longitud: 11
Dentista ###Longitud: 8
Asesino ###Longitud: 7

Iterar Diccionarios

Los bucles for nos permiten iterar diccionarios operando con clave y valor, en este ejemplo supongamos que tenemos una agenda telefónica en forma de diccionario y queremos imprimirla completa:

Resultado:

Marcelo 3443456993
Lucio 3443456989
Lucas 3443456991
Gaston 3443456992
Angela 3443456990

Iterar una cadena

Utilizando el bucle for podemos iterar cadenas de texto, en este ejemplo vamos a iterar una cadena para contar una letra predeterminada:

Resultado: a : 3

Como podemos ver el código nos permite contar la cantidad de veces que se repite una letra dentro de una cadena de texto, ya sea cambiemos la cadena o la letra, siempre nos va a permitir contarla.

Primeramente declaramos la variable entrada para la cadena a almacenar, seguido un contador que establecemos en cero por defecto y la variable cuentalaletra que almacena la letra que vamos a contar!

Después mediante un bucle for iteramos la cadena almacenando los ítems en la variable letras y mediante un condicional comprobamos que la letra sea igual a la variable cuentaletra. Si lo es, sumamos uno al contador y finalmente imprimimos los resultados.

 

 

 

 

Bucles While

El bucle while nos permite ejecutar un bloque de código continuamente mientras la condición sea verdadera e incluso podemos crear bucles infinitos.

Los bucles while se ejecutan mientras la condición sea verdadera, es decir, si la condición se cumple se ejecutara el cuerpo del bucle y al finalizar se volverá a comprobar la condición, si continua siendo verdadera pues se ejecutara nuevamente. En caso contrario omitirá el bucle y continuara la ejecución normal del programa. Venga veamos como crear un bucle while y para que nos ha de servir.

 

 

Sintaxis

La sintaxis del bucle while es realmente muy sencilla, escribimos la palabra reservada While seguida de la condición y dos puntos, debajo de esta se encontrara el cuerpo del bucle.

Veamos algunos ejemplos desde el mas sencillo para entender el funcionamiento y uso de un bucle while:

 

 

Ejemplos

Contador usando bucle while

Vamos a ver un ejemplo clásico del bucle while donde creamos un contador e imprimimos el resultado hasta que la condición deje de cumplirse, en este caso contaremos del 1 al 10.

Resultado:

1
2
3
4
5
6
7
8
9
10

Menú usando bucle while infinito:

Anteriormente en la entrada dedicada a las funciones internas y propias habíamos visto un ejemplo de una calculadora sencilla utilizando funciones donde precisamente usamos el bucle while. Lo recuerdas? Aquí esta el código:

Presta especial atención al código resaltado del bucle while, en este caso el bucle es infinito porque seguido del while colocamos un “True” por ende la condición siempre se cumplirá. Y lo hice así a propósito para que el usuario nunca pueda salir del bucle, es decir, que el programa nunca finaliza hasta que el usuario ingrese los números y elija una opción para obtener un resultado correcto.

Veamos como crear un menú sencillo utilizando un bucle infinito en este caso para obligarlo al usuario a elegir una opción, si no lo hace se lo volverá a solicitar:

 

En la parte 1 del código puedes ver que creamos el bucle infinito y luego debajo, en el cuerpo del bucle colocamos un input para mostrarle al usuario las opciones y permitirle elegir una para almacenarla en la variable “Opcion”.

En la parte 2 del código continuamos dentro del cuerpo del bucle pero agregando condicionales para que dependiendo la opción que el usuario elija suceda una cosa u otra.

Si prestas atención vas a ver que las lineas siguientes al while están todas identadas por lo tanto están dentro del bucle infinito.

Y esto hace que una vez que el usuario elige una opción sigue quedando estancado dentro del bucle.. Y se le vuelve a preguntar lo mismo… ¿Como solucionamos esto? Vamos a eso chango!!

 

 

 

Control de bucles, break, continue y pass

A veces podemos no querer que un bucle se continué repitiendo infinitamente cuando ya ha cumplido su función, para esto existe el control de bucles mediante estas tres instrucciones!

Break

Esta instrucción se utiliza para finalizar un bucle, es decir, salir de el y continuar con la ejecución del resto del código del programa. Justamente esta es la instrucción que estamos necesitando para resolver el problema de nuestro menú:

El break lo colocamos al final del bloque que queremos que de la salida, en este caso luego de que el usuario elija la cualquiera de las opciones. Pero no colocamos un break en el else porque de esa forma si el usuario eligiera un numero de opción inexistente volvería a comenzar el bucle. “El usuario solo podrá salir del bucle eligiendo la opción correcta

 

Continue

La instrucción continue dentro de un bucle obliga al interprete a volver al inicio del bucle obviando todas las instrucciones o iteraciones debajo de el.

Si en vez de colocar un break, colocáramos en su lugar un continue, al seleccionar una opción nos devolvería al inicio del bucle volviéndonos a preguntar. Haz la prueba 😉

Pass

La instrucción Pass es como lo indica su nombre una expresión nula, no hace nada.. Es casi como si no existiera, pero nos permite crear un bucle sin colocar código en su cuerpo para añadirlo mas tarde utilizándolo como un relleno temporal.

La diferencia con continue es que este termina la iteracion actual pero continua con la siguiente instrucción o iteracion del bucle, volviendo al inicio. En cambio pass no hace nada y continua con las siguientes instrucciones del bucle sin volver al inicio.

 

 

Diferencias entre bucles For y While:

 

Podemos destacar algunas diferencias en el uso de bucles For y While:

El bucle For podría traducirse como “para” y el While como “mientras”. En el caso del bucle for no nos permite realizar un bucle infinito. A diferencia de while que si nos brinda esa posibilidad, a la vez que desde el comienzo no están declaradas al cantidad de iteraciones a realizar.

Adiooos!
Esto ha sido todo sobre los bucles espero lo hallas comprendido al 100% y sino vuelve al inicio 8) Cualquier duda puedes dejar un comentario! Gracias por visitar mi blog y no olvides suscribirte!! Nos vemos a la siguiente!!

Suscríbete al blog por correo electrónico!

Introduce tu correo electrónico para suscribirte a este blog y recibir notificaciones de nuevas entradas.