Los condicionales (if, elif y else) en python 3 se utilizan para ejecutar una instrucción en caso de que una o más condiciones se cumplan! Un condicional es como el momento en que se debe tomar una decisión en nuestro programa o script. Dependiendo la decisión que se tome ocurrirá una cosa u otra, o ninguna.
📓 Abre tu cuaderno de Jupyter Notebook que creaste en la lección anterior (4-Listas y Tuplas en Python) y vamos a crear un nuevo cuaderno para esta lección. Llámalo 5-Condicionales en Python.
La comprensión de los condicionales es un elemento clave en la programación pues es lo que determinara que un programa sea dinámico y cambie según diferentes condiciones.
Si explicamos esto con un ejemplo real podemos hacer referencia a un vendedor, un producto y un comprador. Solo si el comprador dispone del dinero necesario el vendedor le otorgara el producto (Condición), caso contrario no lo hará.
📚 Recursos externos para profundizar: Consulta la documentación oficial de Python sobre control de flujo y este artículo sobre estructuras condicionales en programación.
🤔 ¿Qué son los condicionales en Python?
Los condicionales son estructuras que permiten que tu programa tome decisiones dinámicas. Piensa en ellos como puntos de bifurcación en el flujo de tu código: según se cumplan o no ciertas condiciones, el programa seguirá por un camino u otro.
Condición: Si el comprador tiene $25 o más → vender el libro.
Resultado A: Comprador con $100 → «Aquí tienes tu libro»
Resultado B: Comprador con $20 → «Necesitas más dinero»
En un mundo misterioso y paralelo: Si el comprador tiene $200, el vendedor le dice «Aquí tienes tu libro!» y el comprador ahora tiene $175. Fíjate en el ejemplo anterior la condición del vendedor es la misma, si tiene 25 o más, vender. Sino, no! Pero el resultado de la operación es diferente porque en este caso el comprador sí tiene más dinero!
Los condicionales transforman programas estáticos en aplicaciones interactivas que responden a diferentes situaciones. Son fundamentales en cualquier programa que necesite adaptarse a entradas variables o estados cambiantes.
Ahora vamos a ver cómo pasar este ejemplo a un programa!! Pero antes debes comprender unas cositas sobre la sintaxis y estructura de los condicionales en Python.
🎯 If, Elif y Else: Explicación sencilla
If puede traducirse a «sí, entonces» (condición): Si el usuario entra a la tienda, entonces ofrecerle productos. Si el usuario tiene dinero, entonces venderle. Si el usuario tiene la cara cubierta, entonces llamar a seguridad.
Else puede traducirse como «sino» (condición) y normalmente se encuentra como escape a un if y debajo de este: Si el usuario entra a la tienda, entonces ofrecerle productos, sino no hacer nada. Si el usuario tiene dinero, entonces venderle, sino invitarlo a retirarse.
Y Elif podría traducirse como Else If y se utiliza para enlazar varios else if sin aumentar las tabulaciones, vendría a ser como un «si es»: Si el usuario entra a la tienda, entonces ofrecerle productos, sí es un proveedor esconderse, sino no hacer nada. Si el usuario tiene dinero, entonces venderle, si son centavos ofrecer baratijas, sino invitarlo a retirarse.
Y ya! Tenemos programado el mejor vendedor del mundo!!
| Condicional | Traducción | Uso |
|---|---|---|
if |
«Si… entonces» | Condición principal a evaluar |
elif |
«Sino si…» (else if) | Condiciones alternativas |
else |
«Sino» | Caso por defecto |
If el cliente tiene dinero → vender
Elif el cliente es amigo → dar descuento
Else (si no) → explicar precios
📝 Sintaxis Básica de Condicionales
Recordemos que el lenguaje tiene una sintaxis y debemos aplicarla, en el caso de los condicionales if, elif y else es la siguiente:
En Python la indentación (sangría) es OBLIGATORIA. Usa 4 espacios (o tab) después de los dos puntos. Además, el «==» es un operador de comparación (compara si es exactamente igual)! Esto es importante porque si colocas el «=» en el if, te dará un error porque este último es un operador de asignación (asigna un valor como lo vemos con las variables)!!
1. Condicional IF básico
edad = 18
if edad >= 18:
print("Eres mayor de edad")
print("Puedes votar")
Para utilizar el if solo basta con agregarlo en el siguiente orden: IF + (Condición) + «:» Y debajo de los dos puntos, identada (con la tecla tab) la instrucción a realizar en caso de que la condición se cumpla!
2. IF con ELSE
temperatura = 35
if temperatura > 30:
print("Hace calor")
else:
print("Temperatura normal")
Luego de una sentencia if podemos agregar un else («Si no») para que se ejecutara otro código en caso que la condición no se cumpliera y no nos pasará como en ejemplos donde no sucede nada cuando no se cumple la condición.
3. IF, ELIF, ELSE completos
nota = 75
if nota >= 90:
print("Excelente")
elif nota >= 70:
print("Aprobado")
elif nota >= 50:
print("Regular")
else:
print("Reprobado")
Al no cumplirse la condición IF el intérprete seguirá comprobando las elif y se encuentra con la primera donde coincide que la nota es mayor o igual a 70 y por ende ejecuta esta instrucción imprimiendo «Aprobado». La estructura es siempre IF luego ELIF y finalmente ELSE (que se ejecuta en caso que no se cumpla ninguna de las anteriores IF/ELIF).
📖 Ejemplo Práctico: Sistema de Venta
Retomemos nuestro ejemplo inicial y expandámoslo con más funcionalidades:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Sistema de venta mejorado
precio_libro = 25
precio_revista = 10
dinero_cliente = 100
es_cliente_frecuente = True
print("=== TIENDA DE LIBROS ===")
print(f"Precio libro: ${precio_libro}")
print(f"Precio revista: ${precio_revista}")
print(f"Dinero cliente: ${dinero_cliente}")
print("-" * 30)
# Condicional principal con múltiples opciones
if dinero_cliente >= precio_libro:
print("Puedes comprar el libro")
dinero_cliente -= precio_libro
print(f"Saldo restante: ${dinero_cliente}")
# Condicional anidado
if es_cliente_frecuente:
print("Descuento por cliente frecuente!")
descuento = precio_libro * 0.10
dinero_cliente += descuento
print(f"Se te devuelve ${descuento} de descuento")
print(f"Saldo final: ${dinero_cliente}")
elif dinero_cliente >= precio_revista:
print("Puedes comprar la revista")
dinero_cliente -= precio_revista
print(f"Saldo restante: ${dinero_cliente}")
else:
print("No tienes suficiente dinero")
print("Sugerencia: Trae más dinero o mira ofertas")
print("=" * 30)
print("Gracias por tu visita!")
=== TIENDA DE LIBROS === Precio libro: $25 Precio revista: $10 Dinero cliente: $100 ------------------------------ Puedes comprar el libro Saldo restante: $75 Descuento por cliente frecuente! Se te devuelve $2.5 de descuento Saldo final: $77.5 ============================== Gracias por tu visita!
📋 Condicionales con Listas
Los condicionales son especialmente útiles cuando trabajamos con colecciones de datos. Aquí ejemplos prácticos:
Vamos a ver algunos ejemplos más utilizando listas y diccionarios que son estructuras de datos que ya hemos aprendido y por lo tanto podemos ir incorporando.
Ejemplo 1: Verificar membresía
# Lista de usuarios premium
usuarios_premium = ["ana", "carlos", "maria", "pedro"]
usuario_actual = "maria"
if usuario_actual in usuarios_premium:
print(f"Bienvenido {usuario_actual.title()}!")
print("Tienes acceso a contenido exclusivo")
else:
print(f"Hola {usuario_actual.title()}")
print("Considera actualizar a premium para más beneficios")
Bienvenido Maria! Tienes acceso a contenido exclusivo
Ejemplo 2: Búsqueda inteligente
# Sistema de inventario
productos_disponibles = ["laptop", "mouse", "teclado", "monitor"]
productos_agotados = ["audífonos", "webcam"]
producto_buscado = "mouse"
if producto_buscado in productos_disponibles:
print(f"{producto_buscado.upper()} disponible para entrega inmediata")
elif producto_buscado in productos_agotados:
print(f"{producto_buscado.upper()} agotado. Próximo stock en 7 días")
else:
print(f"{producto_buscado.upper()} no encontrado en nuestro catálogo")
print("Productos similares disponibles:")
MOUSE disponible para entrega inmediata
Supongamos que tenemos una lista de alumnos y queremos verificar si un estudiante específico está inscrito y si no lo está queremos que sea añadido a la lista. O también podemos verificar si un número dado está dentro de una lista de números. Son usos prácticos muy comunes en programación.
📚 Condicionales con Diccionarios
Los diccionarios permiten estructuras más complejas. Veamos ejemplos prácticos:
Supongamos que tenemos un diccionario con información de productos y sus precios. Verificaremos si un producto existe y mostraremos su precio. Si no existe vamos a agregarlo con un precio determinado. Esta es una aplicación muy útil en sistemas de inventario reales.
Ejemplo 1: Sistema de precios
# Base de datos de productos
inventario = {
"manzana": {"precio": 1.5, "stock": 50},
"banana": {"precio": 0.75, "stock": 30},
"naranja": {"precio": 1.25, "stock": 0},
"uva": {"precio": 2.0, "stock": 15}
}
producto = "naranja"
cantidad = 10
if producto in inventario:
if inventario[producto]["stock"] >= cantidad:
total = inventario[producto]["precio"] * cantidad
print(f"Pedido confirmado: {cantidad} {producto}s")
print(f"Total: ${total:.2f}")
else:
print(f"Solo tenemos {inventario[producto]['stock']} {producto}s")
print("Deseas menos cantidad?")
else:
print(f"{producto} no disponible")
print("Productos disponibles:", list(inventario.keys()))
Solo tenemos 0 naranjas Deseas menos cantidad?
Ejemplo 2: Sistema de usuarios
# Base de datos de usuarios
usuarios = {
"admin": {"rol": "administrador", "activo": True},
"usuario1": {"rol": "cliente", "activo": True},
"usuario2": {"rol": "cliente", "activo": False}
}
usuario = "admin"
accion = "eliminar_cuenta"
if usuario in usuarios:
if usuarios[usuario]["activo"]:
if usuarios[usuario]["rol"] == "administrador":
print(f"{usuario} tiene permisos de administrador")
print("Accion permitida:", accion)
else:
print(f"{usuario} es cliente")
print("Esta accion requiere permisos de administrador")
else:
print(f"La cuenta de {usuario} esta inactiva")
else:
print(f"Usuario '{usuario}' no encontrado")
admin tiene permisos de administrador Accion permitida: eliminar_cuenta
Operadores Lógicos en Condicionales
Combina múltiples condiciones usando operadores lógicos:
Los operadores lógicos son utilizados para comprobar condiciones múltiples y devolverán True o False. Son fundamentales cuando necesitamos verificar varias condiciones a la vez. Para profundizar, consulta la documentación oficial sobre operadores booleanos en Python.
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
and |
Y (ambas deben ser True) | if edad >= 18 and tiene_licencia: |
True si ambas son True |
or |
O (al menos una True) | if es_vip or puntos > 1000: |
True si al menos una es True |
not |
NO (invierte el valor) | if not esta_suspendido: |
True si es False |
Ejemplo práctico combinado:
Sistema de acceso a evento
# Sistema de acceso a evento
edad = 25
tiene_entrada = True
es_invitado_especial = False
hora_actual = 20 # 8 PM
# Condicion compleja
if (edad >= 18 and tiene_entrada) or es_invitado_especial:
if hora_actual >= 19 and hora_actual <= 22:
print("Acceso concedido! Disfruta del evento")
if edad >= 21:
print("Zona de bar habilitada")
else:
print("El evento es de 7 PM a 10 PM")
print(f"Son las {hora_actual}:00, vuelve mas tarde")
else:
print("Acceso denegado")
if edad < 18:
print("Debes ser mayor de edad")
if not tiene_entrada:
print("Necesitas una entrada")
Acceso concedido! Disfruta del evento Zona de bar habilitada
Estos operadores nos permiten crear condiciones más complejas y realistas. Por ejemplo, podemos comprobar si los 3 usuarios cumplen la edad mínima usando and, o verificar si alguno no la cumple usando or. También podemos negar condiciones con not para verificar estados inversos.
⚠️ Errores Comunes y Cómo Evitarlos
Aquí algunos errores comunes de sintaxis con condicionales en Python que debes evitar:
# INCORRECTO
if puntaje = 100: # ¡Error! Esto asigna, no compara
print("Perfecto")
# CORRECTO
if puntaje == 100: # Esto compara correctamente
print("Perfecto")
# INCORRECTO
if edad >= 18 # ¡Faltan los dos puntos!
print("Mayor")
# CORRECTO
if edad >= 18: # Los dos puntos son obligatorios
print("Mayor")
- Olvidar los dos puntos (
:): Cada condicional debe terminar con dos puntos. - No indentar correctamente: Python requiere indentación para identificar bloques de código.
- Confundir
=con==: El primero asigna valores, mientras que el segundo compara. - Usar paréntesis incorrectamente: Aunque puedes usar paréntesis para agrupar condiciones, no son obligatorios pero ayudan a la claridad.
- Olvidar manejar casos excepcionales: Siempre verifica que tus condiciones cubran todos los posibles escenarios.
| Concepto | Descripción |
|---|---|
if |
Evalúa una condición principal. |
elif |
Evalúa condiciones adicionales si el if no se cumple. |
else |
Se ejecuta si ninguna condición anterior se cumple. |
| Indentación | Obligatoria en Python para definir bloques de código. |
== vs = |
== compara, = asigna. |
in |
Verifica membresía en colecciones (listas, tuplas, diccionarios). |
and, or, not |
Operadores lógicos para combinar condiciones. |
🎓 Conclusión
En este artículo hemos explorado los condicionales en Python (if, elif, else), aprendiendo cómo tomar decisiones dinámicas en nuestros programas y utilizar condicionales con diferentes tipos de datos estructurados, como listas y diccionarios. También hemos visto cómo evitar errores comunes de sintaxis, como olvidar los dos puntos o confundir = con ==.
Los condicionales son fundamentales para hacer que nuestros programas sean interactivos y adaptables a diferentes situaciones. Practica con ejemplos reales y experimenta con diferentes escenarios para mejorar tus habilidades.
- Practica con los ejemplos de este artículo en tu Jupyter Notebook.
- Crea tu propio sistema de condiciones (ej: calculadora de descuentos).
- Experimenta con condicionales en bucles (lo veremos próximamente).
- Profundiza en operadores en Python para mejorar tus condiciones.
Recuerda: La práctica hace al maestro. ¡Experimenta, comete errores y aprende de ellos! Los condicionales son una de las herramientas más poderosas en tu arsenal como programador Python.
📅 Última actualización: julio 28, 2026
