Condiciones if elif else
curso-python 2020-08-01 21:00:00
Las instrucciones condicionles if nos permiten ejecutar código según se evalúen determinadas expresoines, su sintaxis es la siguiente:
if condición_1:
bloque 1
elif condición_2:
bloque 2
elif condición_3:
bloque 3
else:
bloque 4
Esto funciona de la siguiente forma, en primer lugar el intérprete de python se encuentra con el if, por lo que pasa a evaluar la condicion_1 (nota el doble punto al terminar la línea, esto es de caracter obligatorio). Si la condicion se cumple python ejecutara lo que haya a continuación, es decir, el bloque 1. el cual se tratará de una o más lineas de códigos, las que deben estar identadas como en el ejemplo (en caso contrario nuestro programa dará error).
Si la condición_1 se cumplía y python ejecutó el bloque 1 las siguientes instrucciones de elif y else se ignoraran, pero si no se hubiese cumplido python pasaría a evaluar la siguiente instrucción elif, en nuestro ejemplo "elif condicion_2:", como en el caso anterior si esta se cumple ejecutará el bloque 2, pero si no se cumple continuaría con el próximo elif, y si nada se cumple, ejecutaría el else final.
Nota que mientras tanto el if (que sería traducido como "evaluar si...") como el elif (el cual seria un "sino evaluar si...") evalúan condiciones, el else (que sería solo un "sino..") no evalúa nada y ejecuta su bloque siempre y cuando nada de lo anterior se haya cumplido.
Es importante destacar que las instrucciones elif y else son opcionales, pudiendo existir más de un elif y solo un else como máximo en un grupo de condiciones.
Pasemos a un ejemplo práctico, supongamos ahora que tenemos en nuestro programa almacenada la edad de un usuario, y queremos mostrar un mensaje de acuerdo a esta, por ejemplo, si la edad es menor a 10 mostraremos el mensaje "niño", de 10 a 19 mostraremos "adolescente", de 20 a 34 "joven" y edades mayores "adulto".
Podríamos hacer uso de un if para evaluar si se trata de un niño como se muestra a continuación
edad = 8
if edad < 10:
print("niño")
Al ejecutar python evaluará el contenido almacenado en la variable edad (en nuestro caso 8) , como se trata de un valor menor a 10 ejecutó ejecutará lo que contiene el bloque siguiente (que como notarás esta identado) , e imprimirá "niño" en pantalla. Como no existen otras condicionales a evaluar con elif o una instrucción else el programa terminará allí. Veamos otro ejemplo
edad = 5
if edad < 10:
print("niño")
print("termino el programa")
En este caso la instrucción if evaluó el valor de edad (5), y comprobó que era mejor a 10, con lo que mostró el mensaje "niño". Luego mostro el mensaje "termino el programa", nota que ese último print no esta identado, por lo tanto siempre se ejecutara.
Si por ejemplo asignas el valor 15 a edad, entonces el if evaluara la condición como falsa (es decir, edad < 10 no se cumple), por lo tanto no mostrara el mensaje "niño, python pasara así a la siguiente línea de ejecución fuera del bloque condicional, y ejecutará el print("termino el programa"), ya que éste esta fuera del bloque condicional (por no estar identado).
Ahora nos encargaremos de los demás mensajes a mostrar para otras edades, para eso haremos uso else y elif.
edad = 12
if edad < 10:
print("niño")
elif edad < 20:
print("adolescente")
elif edad < 35:
print("joven")
else:
print("adulto")
En el código superior ya estarán contempladas todas las condiciones, con lo que nuestro mensaje mostrará siempre el mensaje correcto.
Ten en cuenta que python nos permite comparar otro tipo de valores además de los numéricos, por ejemplo podemos comparar cadenas de texto. En el ejemplo siguiente si la variable moneda_compra es "usd", entonces se imprimirá "tu compra es en dólares", en caso contrario se imprimirá "Tu compra no es en dólares"
moneda_compra = "usd"
if moneda_compra == "usd":
print("tu compra es en dólares")
else:
print("tu compra no es en dólares")
Ten cuidado cuando evalúas por igualdad, ya que debes escribir un doble signo de igual, pues un único signo igual significa que lo que estaríamos haciendo es una asignación (como lo venimos haciendo con las variables), y no una comparación.
Otro tipo de variables que también podemos evaluar son las variables de tipo booleano, esto es, variables que solo pueden tener el valor verdadero (true) o falso (false), por ejemplo:
python_es_facil = True
if python_es_facil == True:
print("python es fácil de aprender")
else:
print("python es difícil")
Nota que en este caso a la variable python_es_facil la asignamos el valor True, por lo que al ejecutar el código se imprime el primer mensaje, prueba setear la variable a False y veras como se imprimirá en cambio "python es difícil".
En el caso de variables booleanas podrías prescindir del "== True" del ejemplo anterior, el siguiente código funcionará de igual forma
python_es_facil = False
if python_es_facil:
print("python es fácil de aprender")
else:
print("python es difícil")