Nota
¡Hola, bienvenido a la Comunidad de Aficionados a Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte de expertos: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Vistas previas exclusivas: Obtén acceso anticipado a anuncios de nuevos productos y avances.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones festivas y sorteos: Participa en sorteos y promociones de fiestas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy!
Bucles For¶
El bucle for puede recorrer cualquier secuencia de elementos, como una lista o una cadena.
El formato de sintaxis del bucle for es el siguiente:
for val in secuencia:
Cuerpo del for
Aquí, val es una variable que obtiene el valor del elemento en la secuencia en cada iteración.
El bucle continúa hasta que alcanzamos el último elemento en la secuencia. Usa la indentación para separar el cuerpo del bucle for del resto del código.
Diagrama de flujo del bucle For
numbers = [1, 2, 3, 4]
sum = 0
for val in numbers:
sum = sum+val
print("The sum is", sum)
>>> %Run -c $EDITOR_CONTENT
The sum is 10
La sentencia break¶
Con la sentencia break podemos detener el bucle antes de que haya recorrido todos los elementos:
numbers = [1, 2, 3, 4]
sum = 0
for val in numbers:
sum = sum+val
if sum == 6:
break
print("The sum is", sum)
>>> %Run -c $EDITOR_CONTENT
The sum is 6
La sentencia continue¶
Con la sentencia continue podemos detener la iteración actual del bucle y continuar con la siguiente:
numbers = [1, 2, 3, 4]
for val in numbers:
if val == 3:
continue
print(val)
>>> %Run -c $EDITOR_CONTENT
1
2
4
La función range()¶
Podemos usar la función range() para generar una secuencia de números. range(6) producirá números entre 0 y 5 (6 números).
También podemos definir inicio, parada y tamaño de paso como range(start, stop, step_size). Si no se proporciona, el tamaño_de_paso por defecto es 1.
En un sentido de range, el objeto es «perezoso» porque cuando creamos el objeto, no genera cada número que «contiene». Sin embargo, esto no es un iterador porque soporta operaciones in, len y __getitem__.
Esta función no almacenará todos los valores en la memoria; sería ineficiente. Por lo tanto, recordará el inicio, la parada, el tamaño de paso y generará el siguiente número durante el recorrido.
Para forzar a esta función a mostrar todos los elementos, podemos usar la función list().
print(range(6))
print(list(range(6)))
print(list(range(2, 6)))
print(list(range(2, 10, 2)))
>>> %Run -c $EDITOR_CONTENT
range(0, 6)
[0, 1, 2, 3, 4, 5]
[2, 3, 4, 5]
[2, 4, 6, 8]
Podemos usar range() en un bucle for para iterar sobre una secuencia de números. Se puede combinar con la función len() para usar el índice para recorrer la secuencia.
fruits = ['pear', 'apple', 'grape']
for i in range(len(fruits)):
print("I like", fruits[i])
>>> %Run -c $EDITOR_CONTENT
I like pear
I like apple
I like grape
Else in For Loop¶
El bucle for también puede tener un bloque else opcional. Si los elementos en la secuencia utilizada para el bucle se agotan, se ejecuta la parte else.
La palabra clave break puede usarse para detener el bucle for. En este caso, se ignorará la parte else.
Por lo tanto, si no ocurre ninguna interrupción, la parte else del bucle for se ejecutará.
for val in range(5):
print(val)
else:
print("Finished")
>>> %Run -c $EDITOR_CONTENT
0
1
2
3
4
Finished
El bloque else NO se ejecutará si el bucle se detiene mediante una sentencia break.
for val in range(5):
if val == 2: break
print(val)
else:
print("Finished")
>>> %Run -c $EDITOR_CONTENT
0
1