Curso de Python – 4. Estructuras de control de flujo
Tomar decisiones, dar inteligencia a los datos para que se realicen acciones automáticamente, como subir la temperatura si hace frío o bajarla si hace calor, o escribir un millón de veces una frase con solo dos líneas.
Este artículo forma parte del curso completo de Python
Teoría
4.1- If – Sentencia Condicional
Quiero un helado ¿Qué camino he de tomar? ¿El que lleva a la heladería o a todo lo demás? Es una decisión sencilla pero hay que tomar la decisión correctamente, hay que pensarla por poco que sea; de lo contrario, acabaremos en cualquier otro sitio que no es nuestro objetivo.
4.2- If – Sentencia Condicional – Alcance
El alcance del código limitará las líneas de código que se ejecutarán si se toma un camino u otro. Dependerá del cuerpo en ejecución.
4.3- Ejemplo – If – Sentencia Condicional
Ejemplo rápido de una sentencia condicional con código real y funcional.
4.4- Bucle For
Escribir una vez, y otra vez lo mismo, y una vez más exactamente lo mismo ¿Porqué repetir el código si se puede auto-repetir a sí mismo tantas veces como queramos?
4.5- Bucle For – Alcance básico de cuerpos
El código que se repetirá dentro de un bucle for y el código que NO se repetirá.
4.6- Ejemplo – Bucle For – Alcance básico de cuerpos
Ejemplo con código de un bucle for para distinguir claramente su alcance.
4.7- Bucle For – Control del Bucle
Un bucle for se puede ejecutar un millón de veces, pero ¿Y si queremos terminarlo antes? ¿Esperamos a que termine el millón de ejecuciones? ¿O lo controlamos para que hagas termine en el momento que queramos?
4.8- Bucle For – Alcance de varios cuerpos
El alcance de un cuerpo puede estar dentro de otro cuerpo que a su vez tiene su propio alcance.
4.9- Ejemplo – Bucle For – Alcance de varios cuerpos
Un ejemplo de como se utilizan varios bucles for y como afecta a cada uno de los cuerpos.
4.10- While – Bucle Condicional
Un bucle for se puede controlar con break y finally, pero no es elegante ¿No sería ideal tener lo mejor del bucle for y de la condicional if en una sola estructura? Pues se llama bucle While.
4.11- While – Alcance del Bucle Condicional
Al ser el bucle while una mezcla entre el bucle for y la condicional if, está sujeta a que el alcance varíe ligeramente.
4.12- Ejemplo – While
Ejemplo de uso del bucle While.
Ejercicios
Ejercicio 4.1-pan_y_chocolate.py
Crea un programa que pregunte por teclado (pista: input) si hay “chocolate” primero y si hay “harina” después (pista: bool(“Cualquier valor”) es True o bool(“”) es False).
Si ambos son ciertos imprimiremos “Cocinamos una tarta”
Si solo es cierto “chocolate” imprimiremos “Haremos bombones”
Si solo es cierto “harina’ imprimiremos “Hornearemos pan”
Si ninguna es cierta imprimiremos “Hoy descanso”
![](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-pan-y-chocolate-www.jarroba.com_.png)
Ejercicio 4.2-tablas_de_la_verdad.py
Crea un programa que cree las tablas de la verdad AND y OR.
Para ello utiliza dos variables «a» y «b» que se vayan actualizando en cada iteración de un bucle «while» y que termine después de que «a» y «b» sean False (pista: empieza programando la tabla del AND; y continúa con la tabla del OR ayudándote de una variable auxiliar «ultima_iteracion»).
E imprima cada resultado de la iteración con un formato legible como (no hace falta que los espacios estén perfectos, aunque puede ayudar tabular \t):
![](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-AND-y-OR-www.jarroba.com_.png)
Ejercicio 4.3-base_de_datos_banco.py
Trabajamos para un banco y tenemos que crear una base de datos para guardar dinero de nuestros usuarios. El programa nos preguntará eternamente (pista: while true) por el nombre del usuario (clave) y luego un dinero positivo o negativo (un valor numérico; valor). En caso de que el usuario ya exista habrá que sumar al dinero que hubiera el nuevo dinero introducido, sino existiera simplemente lo guardaríamos.
Podremos imprimir el diccionario en cada iteración para saber que hemos introducido y qué se ha actualizado.
![](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-banco-www.jarroba.png)
Ejercicio 4.4.-diccionario_seleccion_futbol.py
Dado el siguiente listado que representan a los jugadores de la selección Española de fútbol que jugo el mundial del 2010:
futbolistas = ["1 - Casillas", "15 - Ramos", "3 - Pique", "5 - Puyol",
"11 - Capdevila", "14 - Xabi Alonso", "16 - Busquets",
"8 - Xavi Hernandez", "18 - Pedrito", "6 - Iniesta",
"7 - Villa"]
Se pide:
- Recorriendo una sola vez el listado, añadir a otro listado llamado “pares” los jugadores cuya clave sea par
(clave: dorsal, valor: nombre) y en una lista llamada “impares” los nombres de los jugadores cuya clave sea impar. - Orden por orden alfabético la lista “impares”.
- Dado el listado “pares”, crear otro listado “pares_al_reves” que tenga como clave el nombre del jugador y
como valor el dorsal del jugador.