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").