Ir al contenido principal

Sentences IF, ELIF y ELSE en Python

En este tutorial, aprenderás exclusivamente sobre las sentencias if else de Python.
Actualizado 6 ago 2025  · 9 min de lectura

Sentences IF, ELIF y ELSE en Python

Al escribir código en cualquier lenguaje, tendrás que controlar el flujo de tu programa. Esto suele ocurrir cuando hay que tomar una decisión: querrás ejecutar una determinada línea de código si se cumple una condición y otro conjunto de código si no se cumple. En Python, tienes las sentenciasif, elif y else para este propósito. En este tutorial, trabajarás con un ejemplo para aprender sobre la sencilla instrucción if y, poco a poco, pasarás a las instrucciones if-else y, a continuación, a las instrucciones if-elif-else. También aprenderás sobre la anidación y verás un ejemplo de if anidado. Empecemos...

Sentencia if simple

Este es el ejemplo más sencillo de una instrucción condicional. La sintaxis es:

if(condition):
    indented Statement Block 

El bloque de líneas con el mismo sangrado después de los dos puntos (:) se ejecutará siempre que la condición sea TRUE.

Sentences IF, ELIF y ELSE en Python
Fuente: python por Programiz

Por ejemplo, supongamos que estás registrando la puntuación de un curso determinado. La puntuación total es de 100, con 50 puntos para el trabajo teórico y 50 para el práctico. Quieres mostrar un mensaje de error o una advertencia si la puntuación supera 100.

score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
    print("Invalid score. Please check the input.")

# no output expected

El signo de dos puntos (:) es importante porque separa la condición de las instrucciones que se ejecutarán tras la evaluación de la condición. Esto es especialmente importante en las sentencias en las que solo hay una sentencia y no se utiliza el bracket ( ). Por ejemplo:

score_theory = 40
score_practical = 45
if score_theory + score_practical > 100: # End of condition
    print("Invalid score. Please check the input.")

# no output expected

La instrucción if anterior comprueba la condición «if» y determina que la instrucción (40 + 45 = 85) es mayor que 100, por lo que es FALSE y, por lo tanto, no se imprimirá la advertencia. Hagamos que la afirmación sea VERDADERA y veamos qué pasa:

score_theory = 50
score_practical = 55
if(score_theory + score_practical > 100):
    print("Invalid score. Please check the input.")

# Invalid score. Please check the input.

Supongamos que quieres ir un paso más allá y mostrar un mensaje cuando la puntuación total se encuentre dentro del rango, es decir, menos de 100. Aquí es donde la instrucción if-else sería útil.

Prueba única: instrucción if-else

La instrucción if-else se utiliza para codificar de la misma manera que se utilizaría en el idioma inglés. La sintaxis de la instrucción if-else es:

if(condition):
    Indented statement block for when condition is TRUE
else:
    Indented statement block for when condition is FALSE

Sentences IF, ELIF y ELSE en Python
Fuente: python por Programiz

Intentemos trabajar con el código anterior y redefinamos el problema: Al registrar la puntuación de determinados trabajos de curso, deseas sumar los puntos de la parte teórica y los de la parte práctica para obtener la puntuación total. Si la puntuación total es inferior o igual a 100, se mostrará el mensaje 'Puntuación correcta', y si no lo es, se mostrará una advertencia como la anterior.

score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
    print("Please check the input. Score exceeds total possible score.")
else:
    print("Score validated. Your total is: ", score_theory + score_practical)

# Score validated. Your total is:  85

Consejo: Si solo tienes una línea de código que ejecutar en lugar de varias líneas en el código que sigue a la condición, puedes colocarlo todo en la misma línea. Esto no es una regla, sino una práctica habitual entre los programadores. Reescribiendo el código anterior con este estilo:

score_theory = 40
score_practical = 45
# Single statement: if(condition): Statement for when condition is true
if (score_theory + score_practical > 100): print("Please check the input. Score exceeds total possible score.")
# Single statement: if(condition): Statement for when condition is false
else: print("Score validated. Your total is: ", score_theory + score_practical)

# Score validated. Your total is:  85

Ahora imagina un caso en el que una de las puntuaciones supera los 50, pero el total sigue siendo inferior o igual a 100. ¿Qué crees que pasaría entonces?

score_theory = 60
score_practical = 40
if(score_theory + score_practical > 100):
    print("Please check the input. Score exceeds total possible score.")
else:
    print("Score validated. Your total is: ", score_theory + score_practical)

# Score validated. Your total is:  100

Esto es incorrecto, ya que sabes que el límite máximo para las puntuaciones individuales en teoría o práctica no debe superar los 50 puntos. ¿Cómo se puede representar esto en código? La respuesta: la instrucción if-elif-else.

Pruebas múltiples: Sentencia if-elif-else en Python

Analicemos el problema que tenemos hasta ahora e intentemos expresarlo con palabras antes de pasar al código.

  • Paso 1. Introduce las dos puntuaciones: score_theory y score_practical

  • Paso 2. Comprueba que ninguna de las puntuaciones supere la puntuación máxima posible, es decir, 50. Esto también resuelve el problema de que la puntuación total no supere los 100 puntos. Si cualquiera de los dos es mayor que 50, muestra la advertencia y sal.

    • 2.1 Comprueba si hay score_theory
    • 2.2 Comprueba si score_practical
  • Paso 3. Si ninguno supera la puntuación, muestra 'Puntuación correcta' y sal.

# Step 1
score_theory = 60
score_practical = 20

if(score_theory > 50):
    print("Please check the input score for 'Theory'.") # Step 2.1
elif(score_practical > 50):
    print("Please check the input score for 'Practical'.")  # Step 2.2
else:
    print("Score validated. Your total is: ", score_theory + score_practical) # Step 3

# Please check the input score for 'Theory'.

La sintaxis que sigue la instrucción if-else-if es:

if(Condition1):
    Indented statement block for Condition1
elif(Condition2):
     Indented statement block for Condition2
else:
     Alternate statement block if all condition checks above fails

Sentences IF, ELIF y ELSE en Python
Fuente: python por Programiz

De hecho, una forma elaborada de ver el efecto de la instrucción if-elif-else de Python como una simple instrucción if-else es escribirla como se muestra a continuación:

score_theory = 60
score_practical = 20

if(score_theory > 50):
    print("Please check the input score for 'Theory'.")
else:
    if(score_practical > 50):
        print("Please check the input score for 'Practical'.")  
    else:
        print("Score validated. Your total is: ", score_theory + score_practical)

# Please check the input score for 'Theory'.

La instrucción elif realmente facilita la escritura de código. Imagina que la declaración del problema se vuelve más compleja, entonces llevar un programa de todas las declaraciones if-else dentro de otra declaración if podría convertirse fácilmente en una pesadilla.

Trabajemos un poco más con el mismo ejemplo. Ahora, imagina que quieres hacer un seguimiento de varios trabajos, por ejemplo: 'Ciencias' e 'Inglés'. La puntuación total para ambos sigue siendo la misma, es decir, 100. Sin embargo, en el caso de Ciencias, la distribución entre teoría y práctica es del 50-50, mientras que en Inglés es del 60-40. ¿Podrías seguir utilizando los formatos anteriores?

¡SÍ! Y puedes hacerlo fácilmente con el concepto de sentencias if anidadas.

Sentences if anidadas en Python

Cuando tienes una instrucción if dentro de otra instrucción if, en el mundo de la programación se denomina anidamiento. No siempre tiene que ser una simple instrucción if, sino que puedes utilizar el concepto de instrucciones if, if-else e incluso if-elif-else combinadas para formar una estructura más compleja.

Codifiquemos el ejemplo anterior:

coursework = "English"
score_theory = 53
score_practical = 35

if(coursework == "Science" or coursework == "science"):
    if(score_theory > 50):
        print("Please check the input score for 'Science: Theory'.")
    elif(score_practical > 50):
            print("Please check the input score for 'Science: Practical'.")  
    else:
        print("Score validated for Science. Your total is: ", score_theory + score_practical)             
elif(coursework == "English" or coursework == "english"):
    if(score_theory > 60):
        print("Please check the input score for 'English: Theory'.")
    elif(score_practical > 40):
            print("Please check the input score for 'English: Practical'.")  
    else:
        print("Score validated for English. Your total is: ", score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")

# Score validated for English. Your total is:  88

¿Te has fijado en el uso de or en el código anterior? Se utiliza para evaluar 'Ciencias' y 'ciencias' como la misma asignatura, y lo mismo ocurre con 'Inglés' e 'inglés'. Puedes utilizar operadores booleanos como or y and para combinar varias condiciones. Pero debes tener cuidado de comprender la salida booleana de tales sentencias combinadas para comprender completamente el flujo de control de tu programa.

Podemos reescribir el código anterior para comprobar las puntuaciones en la misma instrucción, sin embargo, esto hace que el código sea difícil de leer y que las instrucciones sean difíciles de depurar en ocasiones.

coursework = "English"
score_theory = 53
score_practical = 78

if(coursework == "Science" or coursework == "science"):
    if(score_theory > 50 or score_practical > 50):
        # Can't distinguish the error in Science: theory or Science: Practical
        print("Please check the input score for Science.")
    else: print("Score validated for Science. Your total is: ", score_theory + score_practical)             
elif(coursework == "English" or coursework == "english"):
    if(score_theory > 60 or score_practical > 40):
        # Can't distinguish the error in English: theory or English: Practical
        print("Please check the input score for English.")
    else: print("Score validated for English. Your total is: ", score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")

# Please check the input score for English.

¡Voilà!

En este tutorial, has abordado uno de los principales mecanismos de control de flujo disponibles en Python. Has trabajado con un ejemplo en varios niveles para ver las variaciones de la humilde instrucción if en acción. Para obtener más información sobre Python, consulta el curso Introducción a Python para la ciencia de datos de DataCamp.

Preguntas frecuentes sobre Python IF, ELIF y ELSE

¿Qué es la instrucción if en Python?

La instrucción « if » se utiliza para ejecutar un bloque de código si se cumple una determinada condición.

¿Cómo se utiliza la instrucción elif en Python?

La instrucción « elif » (abreviatura de «else if») se utiliza para especificar condiciones adicionales que se deben comprobar después de la instrucción «if» inicial. Si la condición de la instrucción « if » es falsa y la condición de la instrucción « elif » es verdadera, se ejecutará el bloque de código asociado a la instrucción «elif».

¿Puedo tener varias sentencias elif en un solo bloque if?

Sí, puedes tener varias sentencias « elif » en un único bloque « if ».

¿Qué es la instrucción else en Python?

La instrucción « else » se utiliza para especificar un bloque de código que debe ejecutarse si ninguna de las condiciones de las instrucciones « if » y « elif » anteriores es verdadera.

¿Puedo usar la instrucción else sin ninguna instrucción if o elif?

No, la instrucción « else » debe utilizarse junto con una instrucción « if ». No se puede utilizar solo.

Temas

Cursos de Python

Curso

Introducción a Python

4 h
6.6M
Domina los fundamentos del análisis de datos con Python en cuatro horas y descubre sus paquetes más usados.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

Tutorial

if…elif…else en Python Tutorial

Aprende a crear sentencias if…elif…else en Python.
DataCamp Team's photo

DataCamp Team

Tutorial

Tutorial de funciones de Python

Un tutorial sobre funciones en Python que cubre cómo escribir funciones, cómo invocarlas y mucho más.
Karlijn Willems's photo

Karlijn Willems

Tutorial

Tutorial de cadenas en Python

En este tutorial, aprenderás todo sobre las cadenas de Python: trocearlas y encadenarlas, manipularlas y darles formato con la clase Formatter, cadenas f, plantillas y ¡mucho más!
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

if __name__ == "__main__" Python: Explicación completa

El bloque if __name__ == "__main__" de Python te permite definir código que solo se ejecutará cuando el archivo se ejecute directamente como script, pero no cuando se importe como módulo en otro script.
Stephen Gruppetta's photo

Stephen Gruppetta

Tutorial

Función del guión bajo(_) en el tutorial de Python

En este tutorial, vas a aprender sobre los usos del guión bajo(_) en python.
Hafeezul Kareem Shaik's photo

Hafeezul Kareem Shaik

Ver másVer más