Cómo usar las sentencias IF, ELIF y ELSE en Python
¡Hola! Espero que estéis bien, yo supermotivado. Por fin me he animado y he sacado un canal de YouTube orientado al mundo Python. Si estáis interesados hacer click aquí para que le echéis un vistazo y si os gusta el contenido os agradecería que os suscribierais porque le vamos a dar mucha caña a Python 🤘.
Después de un poco de autospam 😅 vamos con el tutorial de hoy. Quiero fortalecer la parte de iniciación de la sección de Python de la web así que hoy le toca a las sentencias IF, ELIF y ELSE, ¡empezamos!
¿Qué son las sentencias IF?
La sentencia if es una herramienta que utilizaremos para evaluar una condición. Si está se cumple (devuelve True), ejecutará el código contenido en ella. Ejemplo:
num = 5
if num == 5:
print('Cumple la condición para ejecutarse este bloque de código')
En este caso decimos que si la variable num es igual a 5 debe ejecutar el bloque de código dentro del if que en este caso es un print con un mensaje. Como en este caso se cumple, se mostrará el mensaje que contiene la sentencia.
En el caso de querer realizar otra acción si no se cumple la condición podemos utilizar la sentencia else. Ejemplo:
num = 4
if num == 5:
print('Cumple la condición para ejecutarse este bloque de código')
else:
print('No se cumple la ejecución, por lo tanto ejecuto este bloque de código')
En este caso, al no cumplirse la condición se ejecuta el código del bloque else.
Comparaciones
Para comparar valores usaremos los siguientes operadores básicos:
> Para comparar si un valor es mayor que otro.
>= Para comparar si un valor es mayor o igual que otro.
< Para comparar si un valor es menor que otro.
<= Para comparar si un valor es menor o igual que otro.
== Para comparar si un valor es igual a otro.
!= Para comparar si un valor es distinto a otro.
is Para comparar si un objeto es igual a otro.
is not Para comparar si un objecto es distinto de otro.
Sentencias con números
Para comparar dos números podemos usar los operadores descritos más arriba como en los ejemplos que hemos usado anteriormente excepto is e is not.
Importante
En otros lenguajes existe el operador de equidad "===" que compara tipo y valor que es diferente del operador "==" que indica igualdad (solo compara el valor). En Python solo existe "==" así que siempre compara valor y tipo. Por lo tanto, operaciones de números con strings siempre devolverán false aunque tengan el mismo valor, ya que tienen distinto tipo. Ejemplo:
if 5 == '5':
print('Aquí no va a entrar nunca porque sus tipos son distintos')
Sentencias con strings
En el caso de que queramos comparar strings, podemos usar "==" para saber si son iguales o "!=" para comprobar si son distintos. Sin embargo, si queremos comprobar si una variable es una cadena vacía, el manual de estilos de Python recomienda utilizar if not como podéis ver en el siguiente ejemplo:
a = ''
if not a:
print('Esta es una cadena vacía')
Encadenar varias sentencias
También nos puede surgir el caso en el que queramos realizar distintas acciones según el valor de una variable. Para solucionar esto podemos usar la sentencia elif todas las veces que necesitemos después de una sentencia if. De esta forma nuestro código irá comprobando todas las sentencias hasta que encuentre la que cumpla la condición. Opcionalmente podemos añadir un else al final para realizar una acción si no se cumplen ninguna de las expresiones de cada sentencia. Os dejo un ejemplo en el que un usuario puede introducir una letra por la línea de comandos y según la que pulse mostrará un mensaje u otro:
command = input()
if command == 'a':
print('Acciones del comando a')
elif command == 'b':
print('Acciones del comando b')
elif command == 'c':
print('Acciones del comando c')
else:
print('Comando inválido')
Como utilizar más de una condición en una misma sentencia
Cuando necesitamos usar más de una condición podemos utilizar los operadores and y or. El significado literal del operador and sería "y" y lo utilizaremos en el caso de que queramos que se cumplan todas las condiciones añadidas. En el caso del operador or significa "o" y lo utilizaremos cuando solo necesitemos que se cumpla una de las condiciones.
Ejemplo de and:
edad = 25
if edad >=18 and edad <= 64:
print('Eres adulto pero no estás jubilado')
En este caso al cumplirse ambas condiciones, entraría dentro del bloque y realizaría el print.
Ejemplo de or:
edad = 65
if edad < 18 or edad > 64:
print('Tienes descuento')
En este caso al cumplirse una de las dos condiciones, entra dentro del bloque y ejecuta el print.
Por último, también tenemos la posibilidad de combinarlos:
edad = 18
tiene_pase_vip = True
tiene_ticket = False
if edad > 17 and (tiene_pase_vip or tiene_ticket):
print('Puede pasar')
Al cumplirse la condición de la edad y una de las dos dentro del paréntesis, se ejecuta el bloque de código.
Sentencias con booleanos
En el caso de que queramos comprobar si una variable es verdadera, podemos añadir simplemente la variable o podemos utilizar el operador is más el valor True:
is_valid = True
if is_valid:
print('Es válido')
if is_valid is True:
print('Es válido')
En el caso de que queramos comprobar si un valor el falso, podemos utilizar el operador not o is más el valor False:
is_valid = False
if is_valid is False:
print('No es válido')
if not is_valid:
print('No es válido')
Sentencias con listas
Cuando queramos comprobar si un valor está dentro de una lista, podemos utilizar el operador in de la siguiente forma:
mi_lista = ['manzana', 'pera', 'naranja']
fruta = 'naranja'
if fruta in mi_lista:
print('Tenemos naranjas')
Sentencias con diccionarios
En el caso de que queramos comprobar si existe una clave en un diccionario, también podemos valernos del operador in como podéis ver en el siguiente ejemplo:
usuario = 'usuario'
datos = {
'usuario': 'Alber',
'fecha': '2021-04-27'
}
if usuario in datos:
print('Tenemos la clave usuario')
En el caso de querer buscar un valor dentro de un diccionario, podemos usar el método values() accesible en todas las variables del tipo diccionario y que nos devolverá una lista con todos los valores. De esta forma podremos usar el operador in para comprobar si existe el valor o no:
datos = {
'usuario': 'Alber',
'fecha': '2021-04-27'
}
if 'Alber' in datos.values():
print('Tenemos el usuario Alber')
Sentencia IF ternaria
Por último, podemos crear operadores ternarios. Estos son básicamente operaciones de una sola línea. De esta forma podremos ahorrar líneas de código cuando tengamos condiciones muy sencillas.
Estas sentencias tienen la siguiente estructura:
'valor if' if expresion else 'valor else'
Ejemplo:
edad = 24
persona = 'Es adulto' if edad > 17 else 'Es menor de edad'
print(persona)
Si cumple la condición del if guardará el valor "Es adulto", en el caso contrario, guardará el valor en el else.
Bueno, creo que no se me escapa nada, espero que este tutorial os ayude si os estáis iniciando en Python y nada, cualquier duda ya sabéis que podéis usar la caja de comentarios.
Espero que este post te ayude y como siempre, te recomiendo seguirme en Twitter para estar al tanto de los nuevo contenido. Ahora también puedes seguirme en Instagram donde estoy subiendo tips, tutoriales en vídeo e información sobre herramientas para developers.
Por último os dejo mi guía para aprender a trabajar con APIs donde explico todo el funcionamiento de una API, el protocolo HTTP y veremos como construir una API con arquitectura REST.
Nos leemos 👋.