Los bucles permiten iterar rápidamente una y otra vez sobre una estructura de datos. En Python hay dos tipos de bucles: for
y while
.
# antes de nada, creo unas cuantas variables con listas para jugar
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print numeros
# fíjate en esta forma nueva de crear una lista a partir de una cadena
# el método .split() me permite "romper" una cadena en una lista de cadenas
# cuando usamos .split() sin más, estamos tokenizando una cadena de texto
semana = "lunes martes miercoles jueves viernes sabado domingo".split()
print semana
oracion = "Green colorless ideas sleep furiously".split()
print oracion
# sin embargo, puedo especificar una subcadena como separador
emails = "sandra@mail.com; ana@mail.com; pepe@mail.es".split("; ")
print emails
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ['lunes', 'martes', 'miercoles', 'jueves', 'viernes', 'sabado', 'domingo'] ['Green', 'colorless', 'ideas', 'sleep', 'furiously'] ['sandra@mail.com', 'ana@mail.com', 'pepe@mail.es']
# puedo acceder a los elementos de la lista a través de índices
print "El tercer número de mi lista es", numeros[2]
print "Y el último email es", emails[-1]
Si necesitamos recorrer todos y cada uno de los elementos de la lista, es más sencillo usar un bucle for
.
for
.¶La instrucción for
permite recorrer los elementos de cualquier secuencia ordenada de uno en uno y por orden. La sintaxis de un bloque de código for-in
es la siguiente:
for ELEMENTO in SECUENCIA:
# ejecuta las instrucciones tantas veces como elementos tenga la secuencia
INSTRUCCIONES
Las palabras reservadas for
y in
son obligatorias. SECUENCIA puede ser cualquier estructuras de datos que sea una secuencia ordenada (por ejemplo, cadenas, las listas y las tuplas). ELEMENTO
es el con el que designamos cada uno de los elementos de SECUENCIA
. Ten en cuenta de ELEMENTO
adopta, en cada paso del bucle, un valor diferente.
for n in numeros:
print "Voy por el numero", n
Voy por el numero 1 Voy por el numero 2 Voy por el numero 3 Voy por el numero 4 Voy por el numero 5 Voy por el numero 6 Voy por el numero 7 Voy por el numero 8 Voy por el numero 9 Voy por el numero 10
for dia in semana:
print "Me gusta el", dia
Me gusta el lunes Me gusta el martes Me gusta el miercoles Me gusta el jueves Me gusta el viernes Me gusta el sabado Me gusta el domingo
cajon = ["una bicicleta", 234, "el número pi", 23, "un libro", "otro libro"]
print "Tengo", len(cajon), "cosas guardadas en un cajón:"
for elemento in cajon:
print "-", elemento
Tengo 6 cosas guardadas en un cajón: - una bicicleta - 234 - el número pi - 23 - un libro - otro libro
alumnos = "Pepito:Raúl:Ana:Antonio:María".split(":")
print alumnos
if "Paco" in alumnos:
print "Paco está en clase."
else:
print "Paco no ha venido hoy."
['Pepito', 'Ra\xc3\xbal', 'Ana', 'Antonio', 'Mar\xc3\xada'] Paco no ha venido hoy.
for letra in "abcdefghijklmnopqrstuvwxyz":
print letra
a b c d e f g h i j k l m n o p q r s t u v w x y z
while
.¶La instrucción while
permite establecer un bucle que repita un conjunto de instrucciones siempre que se dé determinada condición. La sintaxis de un bloque de código while
es la siguiente:
while CONDICIÓN:
# ejecuta las instrucciones a continuación mientras CONDICIÓN sea verdadera
INSTRUCCIONES
Apenas la vamos a utilizar, pero sirva el siguiente ejemplo para ilustrar su uso.
numero = 1
limite = 5
while numero <= limite:
print "El número", numero, "es menor o igual que", limite
numero = numero + 1
El número 1 es menor o igual que 5 El número 2 es menor o igual que 5 El número 3 es menor o igual que 5 El número 4 es menor o igual que 5 El número 5 es menor o igual que 5