¿Qué son las instrucciones "else" y "elif"?
¿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