¿Qué son las instrucciones "else" y "elif"?

Completado

¿Qué ocurre si también quiere que el programa ejecute un fragmento de código cuando la expresión de prueba es False? ¿O bien, qué ocurre si quiere incluir otra expresión de prueba? Python tiene otras palabras clave que puede usar para crear instrucciones if más complejas, else y elif. Al usar if, else y elif de forma conjunta, puede escribir programas complejos con varias expresiones de prueba e instrucciones para ejecutar.

Uso de else

Sabe que cuando se usa una instrucción if, el cuerpo del programa solo se ejecutará si la expresión de prueba es True. Para agregar más código que se ejecute cuando la expresión de prueba sea False, debe agregar una instrucción else.

Vamos a adaptar un ejemplo de la sección anterior:

a = 27
b = 93
if a >= b:
    print(a)

En este ejemplo, si a no es mayor o igual que b, no ocurre nada. Imagine que en su lugar quiere imprimir b si la expresión de prueba es False:

a = 27
b = 93
if a >= b:
    print(a)
else:
    print(b)

Salida: 93

Si la expresión de prueba es False, se omite el código del cuerpo de la instrucción if y el programa continúa ejecutándose desde la instrucción else. La sintaxis de una instrucción if/else siempre es la siguiente:

if test_expression:
    # statement(s) to be run
else:
    # statement(s) to be run

Uso de elif

En Python, la palabra clave elif es la abreviatura de else if. El uso de instrucciones elif permite agregar varias expresiones de prueba al programa. Estas instrucciones se ejecutan en el orden en que se escriben, por lo que el programa escribirá una instrucción elif solo si la primera instrucción if es False. Por ejemplo:

a = 27
b = 93
if a <= b:
    print("a is less than or equal to b")
elif a == b:
    print("a is equal to b")

Salida: a is less than or equal to b

En esta variación, la instrucción elif de este bloque de código no se ejecutará, porque la instrucción if es True.

La sintaxis de una instrucción if/elif siempre es la siguiente:

if test_expression:
    # statement(s) to be run
elif test_expression:
    # statement(s) to be run

Combinación de instrucciones if, elif y else

Puede combinar instrucciones if, elif y else para crear programas con lógica condicional compleja. Recuerde que una instrucción elif solo se ejecuta cuando la condición if es false. Tenga en cuenta también que un bloque if solo puede tener un bloque else, pero puede tener varios bloques elif.

Echemos un vistazo a un ejemplo con las instrucciones if, elif y else:

a = 27
b = 93
if a < b:
    print("a is less than b")
elif a > b:
    print("a is greater than b")
else: 
    print ("a is equal to b")    

Un bloque de código que usa los tres tipos de instrucciones tiene la sintaxis siguiente:

if test_expression:
    # statement(s) to be run
elif test_expression:
    # statement(s) to be run
elif test_expression:
    # statement(s) to be run
else:
    # statement(s) to be run

Uso de lógica condicional anidada

Python también admite la lógica condicional anidada, lo que significa que puede anidar instrucciones if, elif y else para crear programas aún más complejos. Para anidar condiciones, aplique sangría a las condiciones internas y todo lo que esté en el mismo nivel de sangría se ejecutará en el mismo bloque de código:

a = 16
b = 25
c = 27
if a > b:
    if b > c:
        print ("a is greater than b and b is greater than c")
    else: 
        print ("a is greater than b and less than c")
elif a == b:
    print ("a is equal to b")
else:
    print ("a is less than b")

Este fragmento de código genera la salida a is less than b.

La lógica condicional anidada sigue las mismas reglas que la lógica condicional convencional dentro de cada bloque de código. Este es un ejemplo de la sintaxis:

if test_expression:
    # statement(s) to be run
    if test_expression:
        # statement(s) to be run
    else: 
        # statement(s) to be run
elif test_expression:
    # statement(s) to be run
    if test_expression:
        # statement(s) to be run
    else: 
        # statement(s) to be run
else:
    # statement(s) to be run