Operadores aritméticos y lógicos en Python
En este capítulo exploraremos dos tipos fundamentales de operadores que utilizarás constantemente en tus programas Python: los operadores aritméticos para realizar cálculos matemáticos y los operadores lógicos para tomar decisiones basadas en condiciones.
¿Qué son los operadores?
Los operadores son símbolos especiales que le indican a Python que realice una operación específica entre uno o más valores (llamados operandos). Python soporta múltiples tipos de operadores, pero nos centraremos en los aritméticos y lógicos.
Operadores Aritméticos
Los operadores aritméticos se utilizan para realizar operaciones matemáticas básicas y avanzadas. Python soporta los siguientes operadores aritméticos:
| Operador | Descripción | Ejemplo | Resultado |
|---|---|---|---|
| + | Suma | 10 + 5 | 15 |
| - | Resta | 10 - 5 | 5 |
| * | Multiplicación | 10 * 5 | 50 |
| / | División | 10 / 5 | 2.0 |
| // | División entera | 10 // 3 | 3 |
| % | Módulo (resto) | 10 % 3 | 1 |
| ** | Exponenciación | 2 ** 3 | 8 |
Ejemplos prácticos
- Operaciones básicas: Abre tu terminal y escribe las siguientes operaciones para ver los resultados directamente.
# Suma
resultado = 25 + 17
print(resultado) # Salida: 42
# Resta
diferencia = 100 - 35
print(diferencia) # Salida: 65
# Multiplicación
producto = 8 * 7
print(producto) # Salida: 56
Consejo: Recuerda que la división (/) en Python 3 siempre devuelve un número de punto flotante (float), incluso si el resultado es divisible exactamente. Usa // si necesitas un resultado entero.
División entera y módulo
Estos dos operadores son especialmente útiles en programación:
# División entera (floor division)
cociente = 17 // 5
print(cociente) # Salida: 3
# Módulo (resto de la división)
resto = 17 % 5
print(resto) # Salida: 2
# Verificación: 17 = (5 * 3) + 2
El operador módulo (
%) es fundamental para determinar si un número es par o impar: sin % 2 == 0, entonces n es par.
Operadores Lógicos
Los operadores lógicos se utilizan para combinar expresiones condicionales y evaluar si una o más condiciones son verdaderas (True) o falsas (False).
En Python, los valores lógicos son True y False (con mayúscula inicial). Estos valores son fundamentales para el control de flujo en tus programas.
Los tres operadores lógicos principales
| Operador | Descripción | Ejemplo |
|---|---|---|
and |
Devuelve True si ambas expresiones son verdaderas | a and b |
or |
Devuelve True si al menos una expresión es verdadera | a or b |
not |
Invierte el resultado: True se convierte en False y viceversa | not a |
Tablas de verdad
Operador AND
| A | B | A and B |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
Operador OR
| A | B | A or B |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
Ejemplos prácticos de operadores lógicos
# Operador and - ambas condiciones deben ser verdaderas
edad = 25
tiene_identidad = True
puede_votar = edad >= 18 and tiene_identidad
print(puede_votar) # Salida: True
# Operador or - al menos una condición debe ser verdadera
es_estudiante = False
es_docente = True
accede_biblioteca = es_estudiante or es_docente
print(accede_biblioteca) # Salida: True
# Operador not - invierte el valor lógico
es_mayor = edad >= 18
es_menor = not es_mayor
print(es_menor) # Salida: False
Precaución: Ten cuidado con el operador or en Python. Si la primera expresión es True, Python no evalúa la segunda (cortocircuito). Esto es importante cuando la segunda expresión tiene efectos secundarios como llamadas a funciones.
Combinando operadores
Uno de los aspectos más poderosos de Python es que puedes combinar operadores aritméticos y lógicos en una misma expresión:
# Ejemplo: verificar si un número está en un rango
numero = 15
esta_en_rango = numero > 10 and numero < 20
print(esta_en_rango) # Salida: True
# Ejemplo: verificar si un número es par Y mayor que cero
num = 8
condicion = num % 2 == 0 and num > 0
print(condicion) # Salida: True
# Ejemplo práctico: cálculo de IMC con validación
peso = 70
altura = 1.75
imc = peso / (altura ** 2)
imc_valido = peso > 0 and altura > 0
print(f"IMC: {imc:.2f}") # Salida: IMC: 22.86
print(f"IMC válido: {imc_valido}") # Salida: IMC válido: True
Consejo: Usa paréntesis para hacer tu código más legible. Python respeta la precedencia de operadores estándar, pero los paréntesis explícitos eliminan ambigüedades: (a + b) * c es más claro que a + b * c.
Precedencia de operadores
Cuando combines diferentes operadores en una expresión, Python los evalúa en un orden específico (de mayor a menor precedencia):
- Paréntesis:
()- se evalúan primero - Exponenciación:
** - Negación unaria:
-,not - Multiplicación/División:
*,/,//,% - Adición/Sustracción:
+,- - Comparación:
==,!=,<,>,<=,>= - Operadores lógicos:
and,or
Consejo profesional: Cuando tengas dudas sobre la precedencia, usa paréntesis. Es mejor tener código excesivamente claro que ahorrarte unos caracteres.
Prueba tus conocimientos
1. ¿Cuál es el resultado de 17 // 5 + 17 % 5?
A) 5 B) 7 C) 3 D) 2
Respuesta correcta: A) 5 (porque 17 // 5 = 3 y 17 % 5 = 2, entonces 3 + 2 = 5)
2. ¿Qué valor devuelve True and False or True?
A) True B) False C) Error D) None
Respuesta correcta: A) True (porque True and False = False, y False or True = True)
3. ¿Qué operador usarías para obtener solo la parte entera de una división?
A) / B) % C) // D) **
Respuesta correcta: C) // (división entera o floor division)
Resumen
En esta lección hemos aprendido:
- Operadores aritméticos:
+,-,*,/,//,%,**para cálculos matemáticos. - Operadores lógicos:
and,or,notpara combinar condiciones booleanas. - Precedencia de operadores: cómo Python evalúa expresiones complejas.
- Combinación de operadores: cómo unir operadores aritméticos y lógicos para crear expresiones potentes.
Próximo paso: En la siguiente lección aprenderemos sobre las estructuras de control de flujo (if, elif, else) donde aplicaremos todo lo que hemos aprendido sobre operadores para tomar decisiones en nuestros programas.