(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)
CONDICIONALES
Operadores Lógicos. Estructuras: if, else, elif.

Decisiones
Los operadores relacionales, también conocidos como operadores de comparación, juegan un papel fundamental en Python al permitirte comparar valores de manera efectiva. El resultado de estas comparaciones es siempre un valor booleano, es decir, True (verdadero) o False (falso), dependiendo de si la condición evaluada se cumple o no. Esto es crucial, ya que estos operadores te permiten tomar decisiones informadas en tus programas, permitiéndote controlar el flujo de ejecución y tomar caminos diferentes según las condiciones específicas.

Operadores relacionales
| Operador | Descripción |
|---|---|
| == | Igual a: compara si dos valores son iguales. |
Ejemplo:
print(11 == 11) print(5 == 15)
Salida por pantalla:
True False
| Operador | Descripción |
|---|---|
| != | Diferente de: compara si dos valores no son iguales. |
Ejemplo:
print(3 != 3) print(4 != 13)
Salida por pantalla:
False True
| Operador | Descripción |
|---|---|
| < | Menor que: verifica si el valor de la izquierda es menor que el de la derecha. |
Ejemplo:
print(5 < 5) print(8 < 12)
Salida por pantalla:
False True
| Operador | Descripción |
|---|---|
| > | Mayor que: verifica si el valor de la izquierda es mayor que el de la derecha. |
Ejemplo:
print(18 > 15) print(55 > 55)
Salida por pantalla:
True False
| Operador | Descripción |
|---|---|
| <= | Menor o igual que: verifica si el valor de la izquierda es menor o igual al de la derecha. |
Ejemplo:
print(9 <= 4) # False print(7 <= 7) # True
Salida por pantalla:
False True
| Operador | Descripción |
|---|---|
| >= | Mayor o igual que: verifica si el valor de la izquierda es mayor o igual al de la derecha. |
Ejemplo:
print(7 >= 7) # True print(3 >= 6) # False
Salida por pantalla:
True False
Comparación de cadenas
En Python, las comparaciones de cadenas de texto se realizan de manera secuencial, es decir, caracter por caracter, siguiendo el orden establecido por su codificación, ya sea ASCII o Unicode. Esto implica que el lenguaje recorre cada cadena de izquierda a derecha, deteniéndose en el primer punto donde encuentra una discrepancia o cuando una de las cadenas se agota.
Es importante destacar que Python distingue entre mayúsculas y minúsculas, y también considera la longitud de las cadenas. Esto resulta muy útil cuando se necesitan comparar nombres, palabras o cualquier tipo de texto en tus programas.
Código:
print("apple" < "banana") # True
print("apple" > "Apple") # True
print("apple" < "apples") # True
print("python" == "python") # True
print("Python" != "python") # True
print("A" < "a") # True
print("z" > "Z") # True
Salida por pantalla:
True True True True True True True
Operadores lógicos
En Python, los operadores lógicos permiten tomar decisiones en función de múltiples condiciones. Los operadores lógicos utilizados en Python son: and, or y not. Estos operadores permiten combinar condiciones booleanas para evaluar expresiones más complejas y tomar decisiones basadas en ellas en tus programas.
| Operador | Descripción |
|---|---|
| and | Devuelve True si ambos operandos son True. |
Ejemplo:
a and b
| Operador | Descripción |
|---|---|
| or | Devuelve True si alguno de los operandos es True. |
Ejemplo:
a or b
| Operador | Descripción |
|---|---|
| not | Devuelve True si el operando es False, y viceversa. |
Ejemplo:
not a
En Python, a y b son expresiones lógicas que pueden evaluarse como verdaderas o falsas. Es importante destacar que cuando a y/o b son valores numéricos, se consideran como True si son diferentes de cero, y como False si son iguales a cero. Esto permite utilizar valores numéricos en operaciones lógicas de manera efectiva en tus programas.
Estructuras de control
Las estructuras de control en Python son fundamentales, ya que permiten que tus programas trasciendan la ejecución lineal de instrucciones y se adapten a diferentes escenarios. Gracias a ellas, podés diseñar programas que tomen decisiones basadas en condiciones específicas, ejecuten bloques de código selectivamente o repitan acciones múltiples veces. Esto es lo que otorga dinamismo y capacidad de respuesta a tus programas, haciéndolos más interactivos y flexibles.

Condicional (IF)
Las estructuras condicionales en Python tienen como propósito ejecutar un conjunto de instrucciones o un bloque de código alternativo en función de una condición que puede ser cierta o falsa. La palabra clave para implementar estas estructuras es if, la cual permite evaluar una condición y, según su resultado, ejecutar un bloque de código específico.
Si la condición es True, se ejecuta el bloque de código contenido dentro del if. Posteriormente, el programa continúa su ejecución de manera independiente del valor de verdad de la condición, es decir, sin importar si la condición era verdadera o falsa, el programa seguirá adelante con las instrucciones siguientes.
Código:
nota = float(input("Nota: "))
if nota >= 7:
print("Aprobado.")
Esa pequeña sangría (espacio en blanco) al comienzo de la línea no es solo una cuestión de estilo, sino que tiene un propósito específico: indica a Python que las líneas de código subsecuentes forman parte del bloque de código asociado al if.
En este caso, estamos verificando si alguien tiene 18 años o más. Si la condición es True, Python va a imprimir “Sos mayor de edad“. Si no, simplemente va a seguir con el resto del programa, sin hacer nada especial con esa línea.
Código:
edad = 18
if edad >= 18:
print("Sos mayor de edad.")
Condicional (IF…ELSE)
Ya exploramos cómo la estructura if permite a tu programa tomar decisiones cuando una condición es verdadera. Sin embargo, surge una pregunta natural:
¿Qué sucede cuando esa condición no se cumple?
Es en este punto donde entra en escena else. Mientras que if se encarga de ejecutar un bloque de código únicamente cuando algo es True, else toma el relevo cuando esa condición resulta ser False, permitiendo que el programa ejecute un bloque de código alternativo en ese caso.
Código:
if edad >= 18:
# Bloque de instrucciones que se
# ejecuta si la condición es verdadera
print("Puedes pasar.")
else:
# Bloque de instrucciones que se
# ejecuta si la condición es falsa
print("No admitido.")
En este ejemplo, preguntamos si edad es mayor o igual que 18. Si es verdad, mostramos “Puedes pasar.” y el programa continúa sin ejecutar el bloque del else. Si es falso, mostramos “No admitido.” y obviamos el bloque del if.
En este otro ejemplo, se solicita al usuario que ingrese su edad y si tiene licencia de conducir (con una respuesta de “S” para sí y cualquier otra letra para no). Luego, se utiliza una condición if para verificar si la persona tiene al menos 18 años y si tiene licencia de conducir. Si ambas condiciones se cumplen, se imprime el mensaje “Podés conducir“. De lo contrario, se imprime “No podés conducir“. La estructura else proporciona un camino alternativo para cuando la condición no se cumple.
Código:
edad = int(input("Ingresá tu edad: "))
tiene_licencia = input("¿Tenés licencia de conducir? (S/N): ")
# Verificamos si la persona puede conducir
if edad >= 18 and tiene_licencia == "S":
print("Podés conducir.")
else:
print("No podés conducir.")
Condicionales anidados
Hasta ahora, exploramos cómo if y else te permiten tomar decisiones en tu programa, pero surge una pregunta natural: ¿qué sucede cuando necesitás evaluar múltiples condiciones simultáneamente? Es en este punto donde entran en escena las estructuras condicionales anidadas, que te permiten evaluar varias condiciones de manera jerárquica, creando una cadena de decisiones que se ejecutan de manera secuencial.
Este concepto puede parecer inicialmente complejo, pero en realidad es bastante lógico: se trata de incrustar una condición dentro de otra. Esto te permite gestionar situaciones en las que la decisión que vas a tomar depende de una serie de condiciones que deben evaluarse en un orden específico, permitiéndote tomar decisiones más precisas y matizadas en función de múltiples criterios.
Código:
if variable condición valor:
print("")
if variable condición valor:
print("")
else:
if variable condición valor:
print("")
else:
print("")
else:
print("")
Veamos un ejemplo práctico: creamos un programa que evalúa una calificación y decide qué mensaje imprimir en función del resultado. Primero, verificamos si la persona alcanzó la calificación mínima para aprobar. Si es así, luego evaluamos en qué rango de calificaciones se encuentra para proporcionar un feedback más detallado y específico, permitiéndonos ofrecer una retroalimentación más precisa y útil.
Código:
nota = 87
if nota >= 60:
print("¡Aprobaste!")
if nota >= 90:
print("¡Excelente calificación!")
else:
if nota >= 75:
print("Muy buen trabajo.")
else:
print("Buen esfuerzo, pero hay margen de mejora.")
else:
print("No alcanzaste la calificación mínima para aprobar.")
Este script es una versión mejorada del anterior, utilizando elif para lograr el mismo resultado de manera más organizada y fácil de entender. Pero, ¿qué es exactamente lo que hace elif? En esencia, elif es una forma de agregar más condiciones a una estructura if sin necesidad de anidar bloques de código uno dentro del otro, permitiendo evaluar múltiples condiciones de manera secuencial y elegante, sin la necesidad de estructuras anidadas.
Código:
nota = 87
if nota >= 60:
print("¡Aprobaste!")
if nota >= 90:
print("¡Excelente calificación!")
elif nota >= 75:
print("Muy buen trabajo.")
else:
print("Buen esfuerzo, pero hay margen de mejora.")
else:
print("No alcanzaste la calificación mínima para aprobar.")
TAREA PARA EL HOGAR
Imagina que estás colaborando con una tienda de videojuegos para gestionar su inventario.
El propietario te solicita que crees un programa que verifique si hay suficiente stock de un videojuego en particular y, si no es así, que emita una alerta para reponerlo. El programa debe solicitar al usuario que ingrese la cantidad actual en stock y, en función de ese valor, indicar si es necesario realizar un nuevo pedido o no.