#!/usr/bin/env python # coding: utf-8 # # Bucles # # 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`. # # # In[1]: # 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) # In[2]: # 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`. # # ## Bucles `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. # In[3]: for n in numeros: print("Voy por el numero", n) # In[4]: for dia in semana: print("Me gusta el", dia) # In[5]: 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) # In[6]: 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.") # In[7]: for letra in "abcdefghijklmnopqrstuvwxyz": print(letra) # ## Bucles `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. # In[8]: numero = 1 limite = 5 while numero <= limite: print("El número", numero, "es menor o igual que", limite) numero = numero + 1