If...else
Condicionales
Operaciones lógicas
Python
Condicion
Dominar el uso de las condiciones es una de las 5 habilidades fundamentales para construir algoritmos:
El uso de condicionales es la única forma en que los desarrolladores tienen para decirle a la computadora cómo tomar decisiones en tiempo real.
Digamos que estamos construyendo un programa para ayudarnos a elegir qué ponernos y odiamos el color azul, podemos decirle a la computadora que evite el azul usando una condición como esta:
1if color == 'blue': 2 # Haz algo 3else: 4 # Haz otra cosa
👉 El uso de
switch
no está disponible en Python
La forma más fácil de entender expresiones lógicas (al menos para esta lectura en particular), es pensar en ellas como en preguntas que le puedes hacer al computador sobre nuestras variables, por ejemplo:
if user_age > 21:
if day == "tuesday":
if car_model == "toyota" and number_of_tires == 6:
Para hacer una pregunta, o excusar condicionalmente un conjunto particular de líneas, primero necesitas tener datos (información) almacenados en variables útiles, arriba tenemos las variables user_age
, day
, car_model
y number_of_tires
.
Si no tenemos la información prealmacenada en variables no podemos hacer ninguna pregunta, ¡todo es cuestión de estrategia y planificación!
Por ejemplo, si tenemos la edad del usuario almacenada en una variable edad
entonces, y solo entonces, podremos codificar algo como:
1# Se utiliza dos veces igual (==) cuando quieres comparar en lugar de asignar el valor 2if edad == 25: 3 print("¡Eres mayor de edad!")
El ejemplo anterior era una condición simple, pero en la vida real elegir qué ponerse implica una combinación de varias condiciones para tomar la decisión final, por ejemplo: Veamos este algoritmo que te dice si tienes gripe.
Si desea representar este algoritmo en Python, se verá así:
1siento_que_me_atropello_un_tren = True 2me_atropello_un_tren = False 3 4if siento_que_me_atropello_un_tren == True: 5 if me_atropello_un_tren == True: 6 print("No tienes gripe") 7 else: 8 print("Tienes gripe") 9else: 10 print("No tienes gripe")
Básicamente, este algoritmo tiene dos variables a considerar: siento_que_me_atropello_un_tren
y me_atropello_un_tren
.
Nuestro trabajo como desarrolladores es sentarnos y tratar de preparar una estrategia para llegar a un algoritmo que resuelva un problema.
Para hacer una pregunta, tenemos las siguientes comparaciones: ==
, >
, <
, !=
, is None
, is not None
, in
:
Operador | Ejemplo | Descripción |
---|---|---|
== | if a == b | Si el valor de la variable a es igual a b |
< | if a < b | Si el valor de a es menor que b |
> | if a > b | Si el valor de a es mayor que b |
!= | if a != b | Si el valor de a es diferente de b |
is not None | if a is not None | Si a es diferente de None |
is None | if a is None | Si el valor de a es igual a None |
in | if name in ['bob','maria','nancy'] | Si el valor de name está contenido dentro de la lista de nombres |
AND
y OR
en PythonOtra forma de escribir el algoritmo es combinar preguntas en la misma condición utilizando los operadores AND
y OR
:
1siento_que_me_atropello_un_tren = True 2me_atropello_un_tren = False 3 4if siento_que_me_atropello_un_tren and me_atropello_un_tren: 5 print("No tienes gripe") 6elif siento_que_me_atropello_un_tren: 7 print("Tienes gripe")
Como puedes ver, usamos elif
por primera vez, para codificar más rápido. Otro truco que puedes usar es el siguiente:
Original | Equivalente |
---|---|
En lugar de if siento_que_me_atropello_un_tren == true | escribes if siento_que_me_atropello_un_tren |
En lugar de if me_atropello_un_tren == false | escribes if not me_atropello_un_tren |
También puedes usar la expresión else
para referirte a la negación de la primera condición:
1if color "azul": 2 # Descarta esta prenda de vestir 3else: 4 # Guárdala en mi armario 5 6edad = 12 7if (edad > 18): 8 print("Es mayor de edad") 9else: 10 print("No es mayor de edad")
También puedes anidar condiciones if...else una sobre la otra, de esta forma:
1if edad < 16: 2 # No puedes hacer nada 3elif age < 18: 4 # A estas alturas, ya sabemos que es mayor de 15 porque si no, no hubiese ingresado a la primera condición 5elif age < 21: 6 # Si el algoritmo ingresa aquí, sabemos que es mayor de 17 7else: 8 # Si el algoritmo ingresa aquí, sabemos que es mayor de 20
Aquí hay otro ejemplo que ejecuta un algoritmo para saber si un número tiene centenas:
1valor = 14 2 3if valor < 10: 4 print("El valor es una unidad") 5elif valor < 100: 6 print("El valor es una decena") 7elif valor < 1000: 8 print("El valor es una centena") 9elif valor < 10000: 10 print("El valor es una unidad de mil") 11else: 12 print("El valor es un número más allá de los miles")
switch
en PythonPython no tiene una sentencia switch
.
Hay que saber qué preguntas hacer. El ejemplo anterior era una condición simple, pero en la vida real, elegir qué hacer implica una combinación de varias condiciones para tomar la decisión final, por ejemplo:
Veamos este algoritmo que le dice a una computadora cómo decidir qué ponerse durante el día de San Valentín:
1if voy_a_salir: 2 if puedo_comprar_hamburguesa: 3 if venden_vino: 4 # Haz algo 5 else: 6 if blazers > 3: 7 # Haz algo 8 else: 9 # Haz algo 10 elif usa_pantalones: 11 # Haz algo 12 else: 13 # Haz algo 14else: 15 if desnudo_al_llegar: 16 # Haz algo 17 elif blazers > 3: 18 # Haz algo 19 else: 20 # Haz algo