El condicional if elif else y operadores en Python

El condicional if elif else y operadores en Python

Gracias a los condicionales, podemos dotar a los programas de cierta "inteligencia" para tomar decisiones lógicas en torno a un valor booleano de "True" o "False".

Los operadores de comparación de Python

OperadorDescripción
<Menor que
<=Menor o igual que
>Mayor que
>=Mayor o igual que
!=Diferente que
==Igual que

Evaluación de expresiones lógicas

Podemos realizar evaluaciones de este tipo con las variables. En la variable "comparacion", estoy haciendo una comparación. Esta comparación dice 10 mayor que 5.

comparacion = 10 > 5

print(comparacion)

Resultado en la consola

True

En el print(), se muestra el valor que ha obtenido la variable por esa comparación. Nos da el valor True, porque efectivamente, 10 es mayor que 5. Python sabe que esto es verdadero.

¿Qué pasa si escribimos algo que no sea verdad? Por ejemplo, 10 es mayor que 20.

comparacion = 10 > 20

print(comparacion)

Resultado en la consola

False

Puesto que 10 no es mayor que 20, Python nos dice que es "false".

Las indentaciones (tabulaciones) de Python

Llegamos a un tema crucial que debes aprender si o si para continuar con Python. Se trata de las indentaciones (tabulaciones).

En las estructuras condicionales, bucles, funciones, clases, etc. tenemos la posibilidad de añadir bloques con código. Todo el código que incluyas en estas estructuras, deberá ir indentado de la forma en la que se describe en el vídeo.

if 10 > 7:
    print('10 es mayor que 7.')

Resultado en la consola

10 es mayor que 7.

Si utilizas Visual Studio Code, no tendrás que preocuparte por las indentaciones, ya que te las pone de manera automática donde haga falta.

Si no respetas estas tabulaciones, obtendrás el siguiente error:

if 10 > 7:
print('10 es mayor que 7.')

Error en la consola

IndentationError: expected an indented block after 'if' statement on line 1

Error de indentación: se esperaba un bloque indentado después de la declaración if.

El condicional if

El condicional if nos permite que Python tome una decisión lógica (booleana) en torno a su expresión.

Si la expresión del if se cumple (devuelve True), el bloque de código que lleva indentado, se ejecuta. En cambio, si no se cumple, no se ejecuta dicho bloque y se continúa con el programa.

if 10 > 7:
    print('10 es mayor que 7.')

Resultado en la consola

10 es mayor que 7.

En este ejemplo, se ejecuta el código del if, puesto que 10 es mayor que 7 (10 > 7). Esto es True.

Si cambiamos la condición por 10 menor que 7, la expresión ya no es verdadera y por lo tanto, devuelve un False. No se ejecuta el código del if.

if 10 < 7:
    print('10 es mayor que 7.')

El condicional if else

Adicionalmente, al condicional if se le puede añadir un else para que en caso de que la condición del if sea false, tengamos un trozo de código alternativo como el ejemplo que verás a continuación.

numero_1 = 10
numero_2 = 50
 
if numero_2 > numero_1:
    print(f'{numero_2} es mayor que {numero_1}.')
else:
    print(f'{numero_2} no es mayor que {numero_1}.')

Resultado en la consola

50 es mayor que 10.

En este caso, "numero_2" es mayor que "numero_1" y por lo tanto, se ejecuta el código del if.

En cambio, si cambiamos los valores y "numero_2" ya no es mayor que "numero_1", se ejecuta el else.

numero_1 = 1000
numero_2 = 50
 
if numero_2 > numero_1:
    print(f'{numero_2} es mayor que {numero_1}.')
else:
    print(f'{numero_2} no es mayor que {numero_1}.')

Resultado en la consola

50 no es mayor que 1000.

Si la expresión es True, se ejecuta el if, si es False, el else.

Los operadores mayor o igual que y menor o igual que

El operador de comparación mayor o igual que (>=) nos permite realizar una comparación para ver si un valor es mayor o es igual que otro.

edad = 18
 
if edad >= 18:
    print('Es mayor de edad.')
else:
    print('Es menor de edad.')

Resultado en la consola

Es mayor de edad.

El operador de comparación menor o igual que, compara si un valor es menor o es igual que otro.

edad = 18
 
if edad <= 17:
    print('Es menor de edad.')
else:
    print('Es mayor de edad.')

La diferencia entre los operadores igual y asignación

Un solo = representa el operador de asignación. Sirve para asignar un valor a una variable, por ejemplo, no sirve para comparar igualdad en un condicional:

numero = 20
 
if numero = 20:
    print('El número vale 20.')

Error en la consola

SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

El error dice, error de sintaxis: sintaxis inválida. Quizás quiso decir '==' en lugar de '='.

El doble igual es el operador de comparación que representa igualdad:

numero = 20
 
if numero == 20:
    print('El número vale 20.')

Resultado en la consola

El número vale 20.

Los operadores lógicos

Aquí tienes los operadores lógicos que vamos a ver:

Operador lógicoDescripción
&&y
||or
!not

El operador lógico and de Python

Gracias a los operadores lógicos, podemos especificar condiciones más complejas. En esta ocasión veremos el operador lógico and.

Si especificamos varias condiciones con and, todas se tienen que cumplir. En el ejemplo, aunque una de las expresiones se cumpla, si la otra no, devuelve False y no se ejecuta el bloque if.

numero_1 = 10
numero_2 = 10
numero_3 = 15
 
if numero_1 == numero_2 and numero_3 > numero_1:
    print('Se cumple la condición.')
else:
    print('No se cumple la condición.')

Resultado en la consola

Se cumple la condición.

Cambiamos el valor de, por ejemplo, "numero1" y ya no se cumple nada.

numero_1 = 12
numero_2 = 10
numero_3 = 15
 
if numero_1 == numero_2 and numero_3 > numero_1:
    print('Se cumple la condición.')
else:
    print('No se cumple la condición.')

Resultado en la consola

No se cumple la condición.

El operador lógico or de Python

El operador lógico "or" sirve para comparar varias expresiones en los condicionales. Siempre que se cumpla al menos una de ellas, se va a devolver un True y se va a ejecutar su correspondiente bloque de código.

numero_1 = 10
numero_2 = 45
numero_3 = 15
 
if numero_1 == numero_2 or numero_3 > numero_1:
    print('Se cumple la condición.')
else:
    print('No se cumple la condición.')

Resultado en la consola

Se cumple la condición.

"numero_1" no es igual a "numero_2". Sin embargo, puesto que "numero_3" es mayor que "numero_1", se cumple el conjunto.

Si no se cumpliera ninguna de las dos expresiones, daría False y se ejecutaría el else.

El operador lógico not de Python

El operador lógico "not", sirve para evaluar expresiones contrarias a lo que se escribe.

numero_1 = 10
numero_2 = 45
 
if numero_1 < numero_2:
    print('Se cumple la condición.')
else:
    print('No se cumple la condición.')

Resultado en la consola

Se cumple la condición.

En este caso, se cumple la condición del if.

Sin embargo, si envolvemos esta expresión con un operador lógico not, vamos a decirle al intérprete de Python que estamos evaluando todo lo contrario. Que "numero_1" no sea menor que "numero2".

numero_1 = 10
numero_2 = 45
 
if not(numero_1 < numero_2):
    print('Se cumple la condición.')
else:
    print('No se cumple la condición.')

Resultado en la consola

No se cumple la condición.

Por cierto, el operador not, también se puede expresar sin los paréntesis:

if not numero_1 < numero_2:

El bloque elif de Python

En los condicionales if, antes del else, se pueden añadir más bloques adicionales llamados elif con expresiones comparativas alternativas a la del if. Mira un ejemplo:

edad = 20
 
if edad <= 11 and edad > 0:
    print('Infancia')
elif edad >= 12 and edad <= 17:
    print('Adolescencia')
elif edad >= 18 and edad <= 65:
    print('Adultez')
elif edad >= 66 and edad <= 120:
    print('Vejez')
else:
    print('Edad no válida')

Resultado en la consola

Adultez
  • Si la edad es menor o igual a 11 y además es mayor que 0, se ejecuta el if.
  • Si la edad es mayor que 12 y además menor o igual a 17, se ejecuta el primer elif.
  • Si la edad es mayor o igual que 18 y además es menor o igual a 65, se ejecuta el segundo elif.
  • Si la edad es mayor o igual a 66 y además es menor o igual a 120, se ejecuta el último elif.
  • En el caso de que se ponga un valor de 0 o un número negativo, se ejecuta el else. También se ejecuta el else si el valor es mayor que 120, indicando que la edad no es válida.

No te pierdas todo el contenido de este curso y más cosas sobre Python.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso de Python Entrada anterior Los tipos de datos String, Integer, Float y Boolean de Python
curso de Python Entrada siguiente Comprobar valores en una lista sin bucles en Python