Una cadena de texto puede considerarse también como una secuencia. Por ejemplo, la cadena de texto "Alicia"
puede pensarse como un conjunto matemático (con orden) $\{A,l,i,c,i,a\}$ por lo que podemos iterar sobre dicha cadena. Es decir
nombre = "Alicia"
for letra in nombre:
print(letra, " ", end = " ")
A l i c i a
donde la variable del for
fue denominada letra
.
Ahora veamos un ejemplo combinando un bucle for
con el condicional if
. Lo que haremos será ver cuántas letras "i" contiene la palabra "Alicia". Del código anterior vemos como el bucle for
recorre todas las letras de la palabra "Alicia", de modo que el if
hará que sólo se impriman las letras que sean la i
, es decir
for letra in nombre:
if letra == "i":
print(letra)
else:
print("Fin del ciclo")
i i Fin del ciclo
Más aún, podemos hacer que el bucle se detenga cuando la primer letra "i" sea encontrada y para ello nos valdremos de break
. Entonces, el bucle recorrerá cada una de las letras de nombre
y el if
se concentrará únicamente en las letras "i", pero, una vez que el if
sea verdadero por primere vez romperemos el bucle agregando la instrucción break
:
for letra in nombre:
if letra == "i":
print(letra)
break
else:
print("Fin del ciclo")
i
Cabe resaltar que la instrucción del else
ya no fue realizada pues una vez que se ejecuta el break
se deja de realizar las instrucciones del if
y las instrucciones del for
, las cuales incluyen lo referente al else
. En otras palabras, cuando el break
se ejecuta finaliza el bucle y salta a la primera línea del programa después del bucle
for letra in nombre:
if letra == "i":
print(letra)
break
else:
print("Fin del ciclo")
print("Fin del ciclo, conducido por el break")
i Fin del ciclo, conducido por el break
Así como tenemos la declaración break
para romper un bucle, tenemos la declaración continue
que devuelve el control al comienzo del bucle rechazando todas las declaraciones restantes en la iteración actual.
Por ejemplo, recorreremos todos los números (enteros) del 0 al 5 con un bucle for
, luego, cuando la condición i % != 0
del if
sea verdadera ejecutaremos un continue
, es decir, cuando en una iteración obtengamos un número impar el continue
devolverá el control al bucle for
y realizaremos otra iteración.
for i in range(0,6):
if i % 2 != 0:
continue
else:
print("Este es un número par:", i)
print("Fin")
Este es un número par: 0 Este es un número par: 2 Este es un número par: 4 Fin
Lo anterior se puede ilustrar como
donde:
for
selecciona al cero, de modo que la condición del if
es falsa y por ende pasamos a ejecutar la instrucción del else
.for
selecciona al cinco, de modo que la condición del if
es verdadera y se ejecuta la declaración continue
, es decir, el control del flujo vuelve al for
y se realiza otra iteración. Dado que en la iteración 6 se han alcanzado todos los elementos entonces el bucle for
se detiene ejecutándose así la instrucción inmediata después del bucle, en este caso print("Fin")
.