top of page

Flujo de control. Bucle FOR

Nos permite ejecutar un proceso una serie de veces para una serie de datos, se conoce como bucle, un bucle repite una o más veces varias líneas de códigos.


A veces tenemos la necesidad de repetir código.


Existen dos tipos de bucles:


Determinados. Se ejecutan un numero de veces determinado, e, indeterminado, que se ejecutan un numero indeterminado de veces, sin saber las veces que se va a ejecutar el código.


La estructura es for variable in lista.


Veamos un ejemplo, ponemos for, declaramos una variable, ponemos la palabra in, abrimos corchetes, ponemos los números 1,2,3, separados por coma, cerramos corchetes, en otras palabras, la variable “x” va a tomar los valores 1,2, y, 3, es decir, va a recorrer el bucle tres veces, el elemento a recorrer, lo que va después de in, puede ser una lista, una tupla, una cadena de texto, cerramos corchetes, ponemos dos puntos.


For x in [1,2,3,]:

Pulsamos Enter, pulsamos tabular, para respetar la sangría, si no se crea la sangría de forma automática, debemos de poner el cuerpo de bucle, es decir, las líneas a ejecutar, puede ser una línea, o, varias, ponemos print(variable).


Print(x)


Pulsamos F5.


Traduciendo, quiere decir para cada valor de la variable “x”, asigna cada valor a la variable, es decir, la variable “x” vale 1,2, y, 3, pues, la primera vez que se ejecuta for, “x” vale 1, la segunda vez que pasa por for, “x” vale 2, y, la tercera vez que pasa, “x” vale 3.


Si queremos imprimir, por ejemplo, tres veces la palabra pruebas, ponemos lo siguiente:


Al pulsar F5, se imprime tres veces la palabra pruebas.


Si queremos que no se realice un salto de línea, que aparezca la palabra pruebas unidas, debemos de usar end, e, igualamos a blanco, dobles comillas dobles, dentro de print, como sigue:


Para dejar un espacio entre palabras, dentro de las comillas dobles, dejamos un espacio.


Podemos usar un IF dentro de FOR, por ejemplo, vamos a preguntar que, si la variable “x” es igual a 3, que ponga ok, en caso contrario, que devuelva la variable “x”.


Nos devuelve los valores 1, 2, y, en vez de 3 aparece ok.


Veamos otro ejemplo, en la primera línea, creamos una variable, llamada contador e igualamos a 0, en la siguiente línea, creamos otra variable, usamos input, abrimos paréntesis, entre comillas dobles, ponemos Valor:, dejamos un espacio, cerramos paréntesis.


En la siguiente línea, ponemos for, creamos una variable, ponemos in, ponemos la variable dato1, y dos puntos.


¿Qué conseguimos al poner después de in la variable dato1?

Pues, que recorra cada carácter de la cadena introducida.

 

En la siguiente línea, preguntamos si la variable “xx” es igual a la letra “a”.


En la siguiente línea, sumamos 1 a la variable contador.


Pulsamos varias veces Enter, ponemos print, abrimos paréntesis, ponemos la variable contador, cerramos paréntesis.


Pulsamos varias veces Enter, para que este print no forme parte del bucle.


Pulsamos Enter, introducimos una cadena que tenga una o más “a”, pulsamos Enter, y, vemos las veces que aparece dicha palabra.


Pero, puede pasar que en la cadena introducida, no halla “a”, pues, debajo de la línea contador+=1, ponemos otro if, preguntamos si la variable contador es igual a 0, pulsamos Enter, ponemos print, abrimos paréntesis, ponemos comillas dobles, ponemos No hay coincidencias…, cerramos comillas dobles, cerramos paréntesis, pulsamos Enter, ponemos else:, pulsamos Enter, e, imprimimos la variable contador.


Pulsamos F5, al poner una cadena que no contenga “a” aparece no hay coincidencia, si ponemos una cadena, que contenga “a”, aparece el numero de veces que aparece.


Si queremos comprobar la letra “a” y la letra “b”, pues, en el if, usamos el operador lógico or, como sigue:


Pero, si queremos saber el numero de veces que aparece la letra “a”, y, el numero de veces que aparece la letra “b”, cambiamos el nombre a la variable contador, por contador1, creamos otra variable, llamada contador 2 e igualamos a 0.


Las siguientes líneas son las mismas:


En la siguiente línea, preguntamos si la variable “x” es igual a “b”, pulsamos Enter, sumamos 1 a la variable contador2, pulsamos Enter dos veces, ponemos el siguiente print.


Pulsamos Enter, y, vemos las veces que aparece la letra “a”, y, las veces que aparece la letra “b”.


Si vamos a poner valores, por ejemplo, de 1 a 10, en vez de escribirlos, podemos usar la función range.


He de recordar que el ultimo valor de range se omite.


Veamos otro ejemplo, después de for, pulsamos Enter, respetando la sangría.


Ponemos if, ponemos la variable “x”, e, igualamos a 5, ponemos dos puntos.


Pulsamos Enter, ponemos print, y, multiplicamos “x” por 2.


Pulsamos Enter, ponemos else más dos puntos, pulsamos enter, ponemos print y la variable “x”.


Es decir, si el valor de “x” es 5, multiplicara 5 por 2, si no lo es, nos devolverá el valor de la variable “x”.


Pulsamos F5.


Veamos otro ejemplo, tenemos una lista.


Vamos a calcular el promedio, para ello, creamos una variable, la llamaremos promedio, donde usamos la función sum, como argumento ponemos la lista varios, y, dividimos entre el número de elementos, para ello, usamos len, y, como argumento ponemos la lista varios.


Queremos crear una lista con aquellas cantidades que sean menor al promedio, para ello, usamos for, declaramos una variable, ponemos in, ponemos range, y, como argumento usamos len, y, como argumento de len, ponemos la lista varios.


Pulsamos Enter, usamos if, ponemos la lista varios, abrimos un corchete, y, ponemos la variable “x”, es decir, vamos a recorrer cada valor de la lista varios, ponemos el símbolo de comparación menor (<), y, ponemos la variable promedio.


Pulsamos enter dejando la sangría correspondiente.


Imprimimos la lista varios, y, entre corchetes ponemos la variable “x”, para que nos vaya devolviendo el valor que cumple con la condición.


Pulsamos F5, y, tenemos los valores que son menores al promedio.


Ahora, vamos a solicitar aquellos números que son mayores o igual a 9 y menor o igual a 14, para ello, debemos de usar and, como sigue:


Si queremos la lista de números, quitando el número 9 y 14, en la expresion anterior, cambiamos el signo ">" por el signo de indistinto "!", lo mismo para el simbolo de "<".


Para obtener un informe donde no entre ni el valor máximo ni el valor mínimo, usamos la siguiente expresión:




Miguel Angel Franco

 
 
 

Commenti


© 2019 Miguel Ángel Franco García

bottom of page