Estructuras condicionales: if, elif y else#

En Python, las estructuras condicionales, como if se usan para ejecutar un bloque de código si cierta condición es verdadera, permitiendo controlar el flujo de tu programa. Es una de las estructuras de control más utilizadas en programación. Python utiliza las palabras clave if, elif (que significa “else if”) y else para controlar los condicionales.

Estructura if#

La estructura if se utiliza para ejecutar un bloque de código si una condición es verdadera. La sintaxis básica es la siguiente:

if condicion:
    # bloque de código si la condición es verdadera

Por ejemplo, podemos utilizar un if para verificar si un número es mayor que 0:

numero = 5

if numero > 0:
    print ("Cierto. El número es mayor que 0")
Cierto. El número es mayor que 0

El código asigna el valor 5 a la variable numero (numero = 5) y después utiliza una estructura condicional if para verificar si el valor de numero es mayor que 0 (if numero > 0). Si la condición se cumple (como en este caso, porque 5 > 0), se ejecuta el bloque de código asociado, que imprime el mensaje “Cierto. El número es mayor que 0” en la consola.

Si la condición no se cumpliera (por ejemplo, si numero fuera 0 o un valor negativo), el bloque de código dentro del if no se ejecutaría, y no se mostraría ningún mensaje.

Estructura if…else#

La estructura else siempre va asociada a la estructura if. Se utiliza para ejecutar un bloque de código cuando la condición en el if es falsa. La sintaxis es la siguiente:

if condicion:
    # bloque de código si la condición es verdadera
else:
    # bloque de código si la condición es falsa

Siguiendo el ejemplo anterior, podríamos agregar un else para manejar el caso en que el número no sea mayor que 0:

numero = -5

if numero > 0:
    print("El número es mayor que 0")
else:
    print("El número es menor que 0")
El número es menor que 0

En este caso, como numero es -5 y la condición numero > 0 es falsa, entonces se ejecutará el bloque de código dentro del else y veremos en la salida “El número es menor o igual a 10”.

Estructura if… elif… … … else#

La estructura elif se utiliza para evaluar múltiples condiciones de manera secuencial. Es una abreviatura de “else if”.

La sintaxis es la siguiente:

if condicion_1:
    # bloque de código si la condicion_1 es verdadera
elif condicion_2:
    # bloque de código si la condicion_1 es falsa y la condicion_2 es verdadera
elif condicion_3:
    # bloque de código si la condicion_1 es falsa, la condicion_2 es falsa y la condicion_3 es verdadera
...
else:
    # bloque de código si todas las condiciones anteriores son falsas

Veamos un ejemplo donde utilizamos elif para clasificar un número en relación con 0 (positivo, negativo o neutro)

numero = 5

if numero > 0:
    print("El número es positivo")
elif numero < 0:
    print("El número es negativo")
else:
    print("El número es neutro")
El número es positivo

Operadores de comparación#

Los operadores de comparación se utilizan para comparar dos valores. Aquí están los principales operadores de comparación en Python:

  • Igual a (==): Este operador verifica si los dos valores son iguales. Por ejemplo, 5 == 3 es Falso.

  • No igual a (!=): Este operador verifica si los dos valores no son iguales. Por ejemplo, 5 != 3 es Verdadero.

  • Mayor que (>): Este operador verifica si el primer valor es mayor que el segundo. Por ejemplo, 5 > 3 es Verdadero.

  • Menor que (<): Este operador verifica si el primer valor es menor que el segundo. Por ejemplo, 5 < 3 es Falso.

  • Mayor o igual que (>=): Este operador verifica si el primer valor es mayor o igual que el segundo. Por ejemplo, 5 >= 3 es Verdadero.

  • Menor o igual que (<=): Este operador verifica si el primer valor es menor o igual que el segundo. Por ejemplo, 5 <= 3 es Falso.

Estos operadores devuelven un valor booleano (Verdadero o Falso). A menudo se utilizan en condiciones, como en declaraciones if o bucles while.

Por ejemplo

# Definamos dos variables
a = 5
b = 10

# Ahora podemos usar el operador '==' para verificar si estas dos variables son iguales
if a == b:
 print("a es igual a b")
else:
 print("a no es igual a b") # Esto se imprimirá
a no es igual a b
# También podemos usar el operador '!=' para verificar si dos variables no son iguales
a = 3
a = 5
if a != b:
 print("a no es igual a b") # Esto se imprimirá
else:
 print("a es igual a b")
a no es igual a b

Operadores and y or#

Puedes evaluar multiples condiciones utilizando and para cuando necesites que las condiciones sean todas verdaderas, o bien or para cuando necesitas solo evaluar una parte de todas las condiciones.

x = 4
y = 7

if x > 0 and y == 7:
  print ("Tiene que cumplirse las dos condiciones para devolver un TRUE")
else:
  print("LOL")
Tiene que cumplirse las dos condiciones para devolver un TRUE
x = 4
y = 7

if x > 9 or y == 7:
  print ("Basta con que se cumpla una de las condiciones para devolver un TRUE")
else:
  print("LOL")
Basta con que se cumpla una de las condiciones para devolver un TRUE
estoyAfuera = True
estaLloviendo = True

if estoyAfuera and estaLloviendo:
  print("trae el paraguas")
trae el paraguas

También puedes combinar ambos, por ejemplo en en el siguiente caso evaluamos si una persona es alta, lo cual depende de su altura y de su genero

genero = "F"
altura = 160

if ( genero == "M" and altura > 173 ) or ( genero == "F" and altura > 163 ):
  print("La persona es alta")
else:
  print("La persona no es alta")
La persona no es alta

Expresiones condicionales#

En python, una expresión condicional se escribe del siguiente modo X if condition else Y

Nos ayuda a que nuestros códigos sean más legibles y limpios. Por ejemplo el siguiente código evalua en muy pocas líneas si un código es par

miNumero = 2
print("el número es par" if miNumero % 2 == 0 else "el número es impar")
el número es par
estaLloviendo = True
print("vamos al", "parque" if estaLloviendo else "restaurante")
vamos al parque
i = 0
while i < 5:
  print(i)
  i =i + 1 # Esto es equivalente a i +=1
0
1
2
3
4

En este código, i < 5 es la condición para el bucle while. Mientras esta condición sea verdadera (en otras palabras, mientras i sea menor que 5), el código dentro del bucle seguirá ejecutándose. En este caso, el código dentro del bucle es print(i) e i += 1.

La línea print(i) imprime el valor actual de i en la consola, y la línea i += 1 incrementa i en 1. Por lo tanto, cada vez que pasa por el bucle, i se hace más grande y, una vez que i ya no sea menor que 5, el bucle dejará de ejecutarse.

Es importante asegurarse de que la condición del bucle eventualmente se vuelva falsa, de lo contrario, el bucle se ejecutaría indefinidamente, creando lo que se conoce como un “bucle infinito”. En este ejemplo, i sigue aumentando, por lo que eventualmente será 5 o más, y la condición i < 5 será falsa.