Una decisión, con forma de inglés
if es la primera herramienta a la que recurre la mayoría de programas. Deja a tu código tomar un camino cuando una condición es verdadera y un camino distinto cuando no lo es. Python lo deletrea directamente:
Dos líneas, una decisión. La línea del if termina en dos puntos. La línea indentada debajo es el cuerpo del if — el código que se ejecuta si la condición es verdadera. Si hour fuera 15, el cuerpo se saltaría por completo y no se imprimiría nada.
La indentación es la estructura aquí. Python sabe qué líneas pertenecen al if mirando su espacio en blanco inicial. Cuatro espacios por nivel es la convención; sé consistente.
Añadir una rama else
A menudo quieres que pase algo en cualquier caso: esto cuando la condición es verdadera, aquello cuando no. Así es como usas else:
La línea else no tiene condición — captura todo lo que el if no cogió.
Múltiples ramas con elif
Para más de dos caminos, apila cláusulas elif ("else if") entre if y else:
Python recorre las condiciones de arriba abajo y ejecuta el bloque de la primera que sea verdadera. El resto se saltan. Este orden de arriba abajo importa: si pones score >= 60 antes que score >= 90, todo el mundo saca una D — la primera condición verdadera gana.
Una estructura ordenada para tener en mente: las condiciones deberían ser mutuamente excluyentes para cualquier entrada dada, y el orden debería reflejar cómo piensas naturalmente en el problema. Pon los casos más específicos primero, los más generales al final.
Valores truthy en condiciones
La expresión en if no tiene que evaluar a un True o False literal. Python acepta cualquier valor y decide su truthiness:
if items: se lee como "si la lista tiene algo dentro". Los valores falsy incluyen:
False0,0.0None- Contenedores vacíos:
"",[],{},set(),()
Todo lo demás es truthy. Usar la truthiness hace que el código se lea más naturalmente, con un matiz: si el cero es un valor con significado (un contador que está legítimamente en cero), compara explícitamente con is not None o != 0 para evitar la confusión "vacío = cero".
Combinar condiciones
and, or y not te dejan construir condiciones compuestas:
Las comparaciones encadenadas son más limpias que un and explícito cuando los extremos comparten un valor intermedio:
Eso es lo mismo que 18 <= age and age < 65, pero se lee como una desigualdad matemática.
Sentencias if anidadas
Puedes poner un if dentro de otro if. Es legal, y a veces la estructura más clara — pero también es la forma principal en que el código condicional se vuelve difícil de seguir. Si te encuentras tres niveles de profundidad, considera aplanar con retornos tempranos (cuando estés escribiendo funciones) o combinando condiciones:
Ambas funcionan. Elige la versión que se lea mejor para un lector que no ha visto este código antes.
La expresión ternaria
Cuando solo quieres que un valor sea una de dos cosas dependiendo de una condición, Python tiene una forma compacta:
Léelo de izquierda a derecha: "warm si temp es al menos 70, si no cool". Es genial para asignaciones cortas del tipo uno-u-otro. Deja de usarlo cuando las ramas se alarguen o contengan varias operaciones — en ese punto, un bloque if/else completo es más fácil para la vista.
if es expresión solo en un sitio
A diferencia de algunos lenguajes, la sentencia if de Python en sí no produce un valor. Solo la forma ternaria lo hace. No puedes escribir x = if ...: como en Rust o Kotlin. Si quieres un valor condicional, usa el ternario; si quieres comportamiento condicional, usa un bloque if completo.
Un pequeño ejemplo completo
Un programa rápido que clasifica una temperatura:
Fíjate en que la lógica es en su mayor parte decidir cuál debe ser advice. Puedes ver de un vistazo qué rango de temperatura se mapea a qué mensaje. Esa es la forma a la que apuntas cuando escribes condiciones — cada rama debe ser pequeña y la intención global obvia.
Qué viene después
Las condiciones dejan a tu código elegir un camino. Los bucles le dejan repetir. Siguiente: bucles for, el bucle más común en Python con diferencia, y la pareja natural de las colecciones que conocerás unas páginas más adelante.
Preguntas frecuentes
¿Cómo funciona una sentencia if en Python?
if condition: seguido de un bloque indentado ejecuta el bloque solo cuando la condición es verdadera. Las cláusulas opcionales elif (else if) te permiten comprobar condiciones adicionales, y un else opcional se ejecuta cuando nada más coincidió.
¿Python tiene sentencia switch?
Python 3.10 añadió match/case para coincidencia estructural de patrones, que cubre la mayoría de casos de uso del switch y más. Para ramificación simple, una cadena de if/elif sigue siendo común y perfectamente válida.
¿Qué es un if ternario en Python?
Una expresión condicional de una línea: result = a if condition else b. Se lee de izquierda a derecha — evalúa a cuando condition es verdadera, si no evalúa b. Útil para asignaciones cortas del tipo uno-u-otro; menos legible cuando las ramas se alargan.