Operadores aritméticos y lógicos

Lectura
20min~5 min lectura

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

  1. 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: si n % 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):

  1. Paréntesis: () - se evalúan primero
  2. Exponenciación: **
  3. Negación unaria: -, not
  4. Multiplicación/División: *, /, //, %
  5. Adición/Sustracción: +, -
  6. Comparación: ==, !=, <, >, <=, >=
  7. 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, not para 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.