En el post anterior estudiamos la estructura de control condicional, donde pudimos notar que su función principal es evaluar si una o más condiciones se cumplen. La estructura de control iterativa es la que nos permite ejecutar un fragmento de código repetidamente, mientras se cumpla la condición establecida. Para esto Python usa dos estructuras cíclicas:
• El bucle while.
• El bucle for.
El bucle while, permite ejecutar repetidamente un bloque de instrucciones siempre que una condición sea verdadera. Cuando la condición se vuelve falsa, el control del programa pasa inmediatamente a la línea posterior al bucle.
La estructura del bucle while es la siguiente:
While(condición):
acciones
acciones
acciones
Los aspectos importantes a saber de el bucle while son:
Veamos el siguiente ejemplo de un contador:
Input
contador = 0
while (contador <= 10):
print("El contador va por: ",contador)
contador = contador + 1
print("El programa ha finalizado")
Output
El contador va por: 0
El contador va por: 1
El contador va por: 2
El contador va por: 3
El contador va por: 4
El contador va por: 5
El contador va por: 6
El contador va por: 7
El contador va por: 8
El contador va por: 9
El contador va por: 10
El programa ha finalizado
Primero que nada, nuestra condición era que el bucle se iba a ejecutar hasta que el contador fuera menor o igual a 10, luego finalizaba el programa.
while y verifica la condición, es verdadera? Si.Al usar los bucles while debemos tener precaución, porque existe la posibilidad de que nuestro condicional nunca sea falso, dando como resultado un bucle que nunca termina, conocido como bucle infinito.
Un bucle infinito podría ser útil en la programación cliente / servidor donde el servidor necesita ejecutarse continuamente para que los programas del cliente puedan comunicarse con él cuando sea necesario.
Otro forma de usar el bucle infinito es cuando no se conoce la cantidad de ciclos a ejecutar, este se controla mediante un valor centinela que indica si ya se introdujo el ultimo valor. Por ejemplo:
Input
print("ESTE PROGRAMA CALCULA EL PROMEDIO DE UN CURSO")
print()
contador = 0
total = 0
calificacion = int(input("Introduzca la calificacion del alumno o -1 para terminar el programa: "))
while (calificacion != -1):
total = total + calificacion
contador = contador + 1
calificacion=int(input("Introduzca la calificacion del alumno o -1 para terminar el programa: "))
if (contador != 0):
total = total / contador
print()
print("El promedio del curso fue: ", total)
print()
else:
print("No introdujo ninguna calificacion")
print("El programa ha finalizado")
Output
ESTE PROGRAMA CALCULA EL PROMEDIO DE UN CURSO
Introduzca la calificacion del alumno o -1 para terminar el programa: 10
Introduzca la calificacion del alumno o -1 para terminar el programa: 8
Introduzca la calificacion del alumno o -1 para terminar el programa: 5
Introduzca la calificacion del alumno o -1 para terminar el programa: 1
Introduzca la calificacion del alumno o -1 para terminar el programa: 6
Introduzca la calificacion del alumno o -1 para terminar el programa: -1
El promedio del curso fue: 6.0
El programa ha finalizado
No se asusten por la estructura del código, vamos a repasar su ejecución desde el principio hasta el final:
if y ejecuta el bloque de instrucciones. Si el contador es cero se ejecuta la sentencia else diciendo que nunca se introdujo una calificación.Los bucles for se usan cuando se tiene un bloque de código que se desea repetir una cantidad fija de veces, también se usa para recorrer una secuencia
La estructura del bucle for es la siguiente:
for elemento in secuencia:
print elemento
La diferencia entre el bucle for y el bucle while , es que el segundo debe verificar una condición en cada iteración, mientras que el bucle for no. Por ejemplo:
Input
for i in range(3):
print("Valor de la variable es: ", i)
print()
print("El programa ha finalizado")
Output
Valor de la variable es: 0
Valor de la variable es: 1
Valor de la variable es: 2
El programa ha finalizado
La función range(n) crea una lista de n números enteros consecutivos que empieza en 0 y acaba en n - 1.
En este ejemplo el bucle for cuenta dede 0 hasta el 2, y el valor es almacenado en la variable i, es decir, en el primer ciclo range() comienza en 0, este valor es asignado a la variable i, en el siguiente ciclorange() vale 1, este valor es asignado a la variable i y así sucesivamente hasta donde se establezca.
Para entenderlo mejor, cambiemos la función range() , por una lista:
Input
for i in [0,1,2]:
print("Valor de la variable es: ", i)
print()
print("El programa ha finalizado")
Output
Valor de la variable es: 0
Valor de la variable es: 1
Valor de la variable es: 2
El programa ha finalizado
El resultado obtenido es el mismo, recordemos que range() es una lista de números.
También se puede establecer desde y hasta donde va a contar mi bucle for.
Input
for i in range(3,6): #range(desde,hasta-1)
print("Valor de la variable es: ",i)
print()
print("El programa ha finalizado")
Output
Valor de la variable es: 3
Valor de la variable es: 4
Valor de la variable es: 5
El programa ha finalizado
Con range() podemos establecer fácilmente desde donde empieza y hasta donde va a contar.
También podemos decirle de cuanto en cuanto va a contar. Por ejemplo hagamos una tabla de multiplicar:
Input
contador=1
for i in range(3,31,3): #El for cuenta desde el 3 hasta el 31 de 3 en 3
print("3x",contador,"=",i)
contador = contador + 1
print()
print("El programa ha finalizado")
Output
3x 1 = 3
3x 2 = 6
3x 3 = 9
3x 4 = 12
3x 5 = 15
3x 6 = 18
3x 7 = 21
3x 8 = 24
3x 9 = 27
3x 10 = 30
El programa ha finalizado
De esta forma con la función range() podemos hacer una tabla de multiplicar fácilmente. Uno de los motivos porque se recomienda usar el range() en vez de una lista es porque durante la ejecución del programa ocupan menos memoria en el ordenador.
Como pudimos notar, a la función range() le podemos dar distintos usos, todo depende de lo que queramos hacer.
Para finalizar les dejo una serie de ejemplos del bucle for, para que los estudien. Descargue Ejemplos_For.rar
Gracias por permitirme robar unos pocos minutos de tu vida. Me despido por los momentos mis lectores, que tengan un excelente día, tarde o noche.
╭════════════╮
Sígueme en mi Blog
╰════════════╯