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 .

Pruébalo · Python

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 :

Pruébalo · Python

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.

Reto · Python

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.

Reto · Python

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/5 en vez de * 9/5, y la prueba lo delató .

Reto. Si la letra no es ni C ni F, imprime Comando no válido.

Reto · Python

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 print del resultado iba al final, fuera del if. Con la letra Z, resultado nunca 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.

Reto · Python

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.

Reto · Python

Las pruebas revisan los bordes: 12, 13, 19 y 20. Es justo donde un < en vez de un <= cambia la respuesta .

Sigue con la clase 7

El ciclo for

Seguir el canal de WhatsApp