If-else en Python: condiciones, elif, if anidados y ternario
Esta lección es una traducción del original en inglés.Read in EnglishAvisar de un error de traducción
Cada día tomas cientos de decisiones. Si llueve, sales con paraguas. Si el semáforo está en rojo, te detienes. Si a tu teléfono le queda menos del 20% de batería, buscas un cargador. Todas son decisiones condicionales: compruebas algo y actúas según el resultado.
Los programas toman decisiones de la misma manera. Sin condiciones, el código se ejecutaría exactamente igual todas las veces, sin importar qué datos reciba. Las condiciones permiten que tus programas respondan a distintas situaciones, manejen los casos límite y se comporten de forma inteligente.
En este tutorial aprenderás cómo toma decisiones Python con if, else y elif. Al terminar, escribirás programas que eligen caminos distintos según lo que escribe el usuario, los valores calculados y combinaciones complejas de condiciones.
¿Cómo funciona la instrucción if en Python?
La instrucción if es la forma más sencilla de tomar decisiones. Comprueba una condición. Si la condición es True, se ejecuta el código indentado que tiene debajo. Si la condición es False, Python se salta ese código por completo.
It's hot outside! Stay hydrated. Have a great day!
Fíjate en la estructura. Después de la palabra clave if viene una condición (temperature > 30) y luego dos puntos (:). Las líneas de debajo están indentadas: así sabe Python qué código pertenece al bloque if. La última línea se ejecuta pase lo que pase, porque no está indentada bajo el if.
Prueba a cambiar la temperatura a 25 en el código de arriba y vuelve a ejecutarlo. Las dos líneas sobre el calor desaparecerán, pero seguirás viendo "Have a great day!" porque está fuera del bloque if.
Agregar else: ¿qué pasa cuando la condición es falsa?
Una instrucción if por sí sola solo puede hacer algo o no hacer nada. Pero muchas veces quieres hacer una cosa cuando la condición es verdadera y otra distinta cuando es falsa. Para eso sirve else.
You're too young to vote. Come back in 3 years.
Piensa en if-else como una bifurcación en el camino. Python siempre va por un lado o por el otro: nunca por los dos, y nunca por ninguno. Cada vez se ejecuta exactamente un bloque.
score = 85
if score >= 60:
print('You passed!')
if score < 60:
print('You failed.')score = 85
if score >= 60:
print('You passed!')
else:
print('You failed.')La versión con else es mejor por dos razones. Primero, es más corta y fácil de leer. Segundo, es imposible que por accidente se ejecuten los dos bloques o ninguno. Con dos instrucciones if separadas, una errata en la segunda condición podría causar errores.
¿Cómo funciona elif con varias condiciones?
¿Y si tienes más de dos opciones? Imagina que calificas un examen: A, B, C, D o F. No puedes manejar cinco resultados solo con if y else. Ahí es donde entra elif (abreviatura de "else if", es decir, "si no, si").
Score: 82, Grade: B
Python comprueba las condiciones de arriba abajo. En cuanto encuentra una que es True, ejecuta ese bloque y se salta todo lo que hay debajo. Si no se cumple ninguna condición, se ejecuta el bloque else como red de seguridad.
Puedes tener tantos bloques elif como quieras. El else del final es opcional, pero es buena práctica incluirlo para atrapar los valores inesperados.
Instrucciones if anidadas: condiciones dentro de condiciones
A veces necesitas comprobar una segunda condición solo si la primera se cumple. Por ejemplo, una atracción de un parque temático podría comprobar primero tu estatura y luego tu edad. Puedes poner una instrucción if dentro de otra instrucción if: esto se llama anidar.
Welcome to the ride!
El if interior solo se ejecuta cuando el if exterior es True. Fíjate en cómo la indentación se hace más profunda: cada nivel de anidamiento agrega otra capa de indentación.
if has_ticket:
if age >= 12:
if height >= 120:
print('Welcome!')if has_ticket and age >= 12 and height >= 120:
print('Welcome!')Operador ternario en Python: if-else en una línea
A veces tienes un if-else sencillo que solo asigna un valor. Python tiene un atajo para esto llamado operador ternario (también conocido como expresión condicional). Pone todo el if-else en una sola línea.
adult adult
La sintaxis es: value_if_true if condition else value_if_false. Se lee casi como una frase: "status vale 'adult' si age es al menos 18; si no, vale 'minor'".
Wear a t-shirt today. Absolute value of -5 is 5
Errores comunes con if-else
Estos son los errores más frecuentes que cometen los principiantes con las instrucciones condicionales. Aprende a reconocer estos patrones y te ahorrarás horas de depuración.
This always runs! Red or blue! Primary color!
Ejercicios de práctica
¡Hora de practicar! Estos ejercicios van desde instrucciones if sencillas hasta una lógica condicional más compleja. Intenta resolver cada uno antes de mirar las pistas.
Escribe un programa que compruebe si un número es par o impar. Tienes una variable number con el valor 7.
Imprime "even" si el número es par, o "odd" si es impar.
Salida esperada:
oddPista: un número es par si number % 2 == 0 (el resto de dividirlo entre 2 es cero).
Escribe un programa que dé consejos de ropa según la temperatura. Tienes una variable temp con el valor 22.
Reglas:
"Wear shorts""Wear a t-shirt""Wear a jacket""Wear a coat"Salida esperada:
Wear a t-shirtSin ejecutar el código, predice qué imprimirá. Luego ejecútalo para comprobarlo.
Piensa bien qué condiciones son True y cuáles son False.
Esta calculadora de notas tiene un error. Todas las puntuaciones reciben la nota "D", aunque deberían ser "A", "B" o "C". Corrige la serie de elif para que funcione bien.
Salida esperada con score = 85:
Grade: BUn cine cobra $12 a los adultos (18 años o más) y $8 a los niños (menores de 18). Usa el operador ternario para fijar el precio en una línea y luego imprímelo.
Tienes una variable age con el valor 14.
Salida esperada:
Ticket price: $8Escribe un validador de inicio de sesión. Tienes dos variables: username y password.
Reglas:
"admin" y password es "secret123", imprime "Welcome, admin!""admin" pero la contraseña es incorrecta, imprime "Wrong password""User not found"Salida esperada con username = "admin", password = "wrong":
Wrong passwordResumen: instrucciones if-else en Python
Esto es todo lo que aprendiste sobre las instrucciones condicionales en Python:
| Concepto | Sintaxis | Para qué sirve |
|---|---|---|
if | if condition: | Ejecuta código cuando la condición es True |
else | else: | Ejecuta código cuando el if es False |
elif | elif condition: | Comprueba condiciones adicionales |
| If anidado | if dentro de if | Decisiones en varios niveles |
| Ternario | x if cond else y | If-else en una línea para valores sencillos |
Reglas clave que debes recordar:
if, elif y else termina con dos puntos (:)True== para comparar, no = (que sirve para asignar)¿Qué sigue?
Ahora que sabes tomar decisiones, es hora de hacer que tus programas repitan cosas. En el próximo tutorial, [Bucles for en Python](/python/python-for-loops), aprenderás a recorrer listas, rangos y cadenas para procesar datos sin escribir el mismo código una y otra vez.