Clase 06 · 37 minGratis
Condicionales: if, elif y else
Clase 6 del curso gratis Aprende a Programar con Python: de un diagrama de flujo a tu primer programa con if, elif y else. Cinco ejercicios: edad permitida, comparar números, convertir temperaturas, par o impar y clasificar edades.
Toca cualquier marca ▸ 0:00 de los apuntes y el video salta a ese momento. Abrir en YouTube
El algoritmo de la lámpara
Un día la lámpara de tu cuarto no enciende. Sin darte cuenta, activas un plan: ¿está conectada? Si no, la conectas y listo. Si sí está conectada, ¿el bombillo está quemado? Si lo está, lo cambias; si no, la mandas a reparar .
Dibujado, eso es un diagrama de flujo : rectángulos para las acciones y rombos para las preguntas. Cada rombo es un condicional . (Cuando el árbol de preguntas crece y lo aprende una máquina, en ciencia de datos se llama árbol de decisión .)
En Python, la pregunta se escribe con if y el «si no» con else. Y las
preguntas se pueden anidar: una dentro de otra .
Fíjate en dos cosas que Python exige: los dos puntos al final del if y
del else, y la sangría (4 espacios) de lo que va dentro. La sangría no
es estética: es la forma en que Python sabe qué está dentro de qué.
Tu primer archivo .py
En el video, cada ejercicio es un archivo en Visual Studio Code. Un truco
para abrirlo en la carpeta en la que estás: en la consola, code .
. La extensión .py es la que dice que el archivo es de
Python , y el enunciado de cada ejercicio va arriba como
comentario . Así viene también en el material
descargable.
Ejercicio 1: edad permitida
input() le pide un dato a la persona y lo guarda en una variable. Aquí, lo
que escribirías en la terminal va en Entradas :
Cambia el 28 por Pedro y vuelve a ejecutar: input() acepta cualquier
cosa, porque siempre devuelve texto . Para trabajar
con números hay que convertirlo con int() .
Antes de escribir la lógica, el diagrama: pedir la edad, preguntar si es mayor de edad, y un mensaje por cada camino .
Reto. Pide la edad e imprime Bienvenido al evento si es mayor de edad
o Aún no puedes entrar si no.
En el video la condición es edad > 18 : con ella,
alguien de exactamente 18 años se queda afuera. «Mayor de edad» incluye los
18, así que aquí va >=. Probar el borde (el 18) es de los hábitos que más
errores ahorran.
La recomendación del video para todos los ejercicios: dibuja el diagrama y resuélvelo antes de mirar la solución. Es haciendo donde se aprende .
Ejercicio 2: comparar dos números
Este enunciado no va con # sino con triple comilla: un docstring, la
documentación del archivo .
Si el primero no es mayor, no quiere decir que el segundo lo sea: pueden ser
iguales . Para volver a preguntar sin anidar otro if
existe elif («else if») .
Reto. Imprime cuál es el mayor o Los números son iguales.
Ejercicio 3: convertir temperaturas
La persona elige qué quiere obtener: C para Celsius o F para Fahrenheit
. La temperatura puede tener decimales, así que va con
float() y no con int() .
Para preguntar si algo es igual se usa ==. Un solo = asigna; dos,
preguntan . Las fórmulas:
- A Celsius:
(temperatura - 32) * 5 / 9. - A Fahrenheit:
temperatura * 9 / 5 + 32. En el video primero se escribió+ 9/5en vez de* 9/5, y la prueba lo delató .
Reto. Si la letra no es ni C ni F, imprime Comando no válido.
Dos detalles del video que vale la pena mirar:
- Los decimales no son exactos. 64,4 °F da 18,000000000000004 °C, no 18:
así se guardan los flotantes en la memoria . Si
necesitas precisión, existe el módulo
decimal; para mostrar el número,round(resultado, 1). - Una variable que no existe. En el video, el
printdel resultado iba al final, fuera delif. Con la letra Z,resultadonunca se crea y la primera ejecución da error . Por eso aquí cada rama imprime lo suyo.
Ejercicio 4: ¿par o impar?
Se podría revisar en qué dígito termina el número, con un montón de
condiciones . Hay un camino más ingenioso: un número par
dividido entre 2 nunca deja residuo. Diez frutas entre dos personas, cinco
para cada una y no sobra nada; entre tres, sobra una
. Ese residuo lo da el operador módulo, %
.
Reto. Imprime El número es par o El número es impar.
La pregunta que deja el video: ¿el cero es par? Sí: 0 dividido entre 2 da 0 y no sobra nada, así que el algoritmo acierta .
Ejercicio 5: clasificar edades
De 0 a 12 años, niño; de 13 a 19, adolescente; de 20 en adelante, adulto.
El orden de las preguntas hace el trabajo: si llegó al elif, ya se sabe
que no tiene 12 o menos, así que no hace falta preguntar si tiene más de 12
.
Reto. Imprime Eres un niño, Eres un adolescente o Eres un adulto.
Las pruebas revisan los bordes: 12, 13, 19 y 20. Es justo donde un < en
vez de un <= cambia la respuesta .
