En este tutorial aprenderás como usar de forma práctica los ciclos **for **y while. Una de las mejores formas de aprender es asociando un problema teórico con un caso del mundo real, por esta razón hoy aprenderás a usar estos ciclos o loops por medio de un ejemplo en el que calcularemos las horas en las que una batería es usada en el día dependiendo de la producción de energía con paneles solares, el consumo en el hogar y el estado de carga de una bateria.
Empecemos por definir que son estos ciclos.
**for **
Es una estructura utilizada cuando se desea repetir un bloque de código por un determinado número veces. Los ciclos for siempre están conectados con un objeto iterable, por ejemplo, una lista o un rango. La declaración for itera o recorre los elementos de una secuancia en orden, ejecutando el bloque de código cada vez.
range = [1, 2, 3, 4, 5]
for i inrange:
print(i)
Código explicado: _range _es una lista de números de 1 a 5, o un conjunto con un número de elementos determinado. La variable en este caso llamada i recorrerá o iterará los elementos de la lista range ejecutando el código por cada uno de estos. El resultado será la impresión de cada uno de los elementos contenidos en range.
**while **
El ciclo while se utiliza cuando queremos repetir un bloque de código indefinidamente hasta que cierta condición deje de cumplirse que detiene el ciclo. Este ciclo se utiliza cuando no sabemos el número de iteraciones a realizar.
number = 0whilenumber < 7:
print(x)
number += 1
Código explicado: este código nos dice que _mientras _(o _while _en inglés) la variable “numero” tenga un valor mejor a 7 se imprimirá el conteo como respuesta. "number+= 1 " significa que la variable “number” aumentará su valor en una unidad, cada vez que se repita el ciclo.
Ejemplo Práctico - Uso de una batería en el hogar
Se tendrán las siguientes variables de entrada
# Consumo de electricidad en el hogar en Wh (watt-hora)consumo_hogar = [5, 29, 40, 26, 85, 97, 86, 120, 135, 96, 85, 70, 101, 105, 83, 75, 69, 72, 98, 115, 130, 147, 119, 108]# Electricidad producida por los paneles solaresproducción_solar = [0, 0, 0, 0, 15, 45, 78, 89, 145, 130, 145, 161, 170, 172, 165, 152, 103, 79, 11, 0, 0, 0, 0, 0]
Queremos saber cuantas horas se utilizará una bateriía. La condición para usar la batería, es que cuando la producción de electricidad es menor que el consumo, entonces se deberá utilizar la batería.
# Valida que las dos listas tengan el mismo tamaño o 24 horas
if len(consumo_hogar) != len(produccion_solar):
print('La lista debe tener el mismo tamaño')
else:
# Calcula la diferencia elemento por elemento
difference = [produccion_solar[i] - consumo_hogar[i] for i inrange(len(consumo_hogar))]
print(difference)
# Calcula el número de horas de uso dela batería
hours = 0
for x inrange(len(difference)):
if difference[x] < 0: # condicional
hours += 1 # aumenta el conteo de horas cuando la condicion se cumple
print('La bateria se usa', hours, 'horas al diá')
Explicación de código:
De esta forma usamos el ciclo for con la variable “x” para iterar en un rango de 24 (número de horas que tiene un día). Luego, se ejecuta la condición if en cada una de las 24 iteraciones, evaluando cual de los elementos es un número negativo (x < 1). Finalmente, se utiliza un contador para que sume una unidad a la variable “hours” cada vez que haya un número negativo.
El resultado de ejecutar nuestro código será que la batería se usa 14 horas al día. ¨
Espero que este ejemplo práctico te haya servido para afianzar tus conocimeintos en los ciclos en Python. Hasta la próxima!