Lección 4: Operadores y expresiones
Ya sabes cómo guardar información en variables y conoces los tipos de datos básicos de Python. Ahora viene algo igual de esencial: aprender a hacer cosas con esa información. En esta lección vas a dominar los operadores, que son las herramientas que te permiten realizar cálculos, comparar valores y tomar decisiones lógicas dentro de tu código.
Piénsalo así: si las variables son las cajas donde guardas datos, los operadores son las instrucciones que le das a Python para que trabaje con el contenido de esas cajas.
Operadores aritméticos: la calculadora de Python
Los operadores aritméticos son los más intuitivos porque funcionan igual que en matemáticas. Python puede sumar, restar, multiplicar y dividir, pero también tiene algunas operaciones extra que te van a ser muy útiles.
| Operador | Operación | Ejemplo | Resultado |
|---|---|---|---|
+ |
Suma | 5 + 3 |
8 |
- |
Resta | 10 - 4 |
6 |
* |
Multiplicación | 6 * 7 |
42 |
/ |
División (decimal) | 15 / 4 |
3.75 |
// |
División entera | 15 // 4 |
3 |
% |
Módulo (residuo) | 15 % 4 |
3 |
** |
Potencia | 2 ** 8 |
256 |
Los dos operadores que probablemente no conocías son el módulo (%) y la división entera (//). El módulo te da el residuo de una división, algo útil para saber si un número es par o impar, o para hacer ciclos. La división entera descarta los decimales y te da solo la parte entera del resultado.
Veamos esto en acción con un ejemplo real. Imagina que trabajas como freelancer desde México y quieres calcular tus ganancias mensuales en diferentes monedas:
# Cálculo de ingresos freelancer en México
tarifa_hora = 350 # pesos MXN por hora
horas_semana = 20 # horas trabajadas por semana
semanas_mes = 4
# Ingreso mensual en MXN
ingreso_mensual = tarifa_hora * horas_semana * semanas_mes
print("Ingreso mensual MXN:", ingreso_mensual) # 28000
# Conversión a USD (tipo de cambio aproximado)
tipo_cambio = 17.5
ingreso_usd = ingreso_mensual / tipo_cambio
print("Ingreso mensual USD:", ingreso_usd) # 1600.0
# ¿Cuántas horas completas trabajaste este año?
horas_año = horas_semana * 52
print("Horas trabajadas al año:", horas_año) # 1040
Este ejemplo mezcla varias operaciones aritméticas en un contexto que tiene sentido para alguien que trabaja de forma remota o en el ecosistema de startups de LATAM. Nota que Python respeta el orden de las operaciones: primero multiplica y luego suma, igual que en las matemáticas tradicionales.
Operadores de comparación: ¿esto es mayor que aquello?
Los operadores de comparación son los que te permiten evaluar si dos valores tienen cierta relación entre sí. El resultado de una comparación siempre es un valor booleano: True (verdadero) o False (falso).
| Operador | Significado |
|---|---|
== |
Igual a |
!= |
Diferente de |
> |
Mayor que |
< |
Menor que |
>= |
Mayor o igual que |
<= |
Menor o igual que |
Un error muy común entre principiantes es confundir = con ==. El signo = solo se usa para asignar un valor a una variable. El doble == es el que compara dos valores. Python es estricto con esto y te dará un error si los confundes.
salario = 22000 # en MXN, sueldo mensual
# ¿El salario supera el promedio del sector tech en MX?
promedio_tech = 25000
supera_promedio = salario >= promedio_tech
print("¿Supera el promedio tech?", supera_promedio) # False
# ¿El salario es mayor que el salario mínimo?
salario_minimo = 7000
sobre_minimo = salario > salario_minimo
print("¿Está sobre el mínimo?", sobre_minimo) # True
# ¿Son exactamente iguales?
print("¿Igual al promedio?", salario == promedio_tech) # False
Estos operadores se vuelven extremadamente poderosos cuando los combinas con estructuras de control como if y while, que verás en lecciones próximas. Por ahora, lo importante es que entiendas que generan un resultado True o False.
Operadores lógicos: combinando condiciones
Muchas veces no basta con evaluar una sola condición. Tal vez necesitas saber si un candidato a una vacante de trabajo remoto cumple dos requisitos al mismo tiempo, o si cumple al menos uno de dos criterios. Para eso existen los operadores lógicos.
Python tiene tres operadores lógicos principales:
and — Regresa True solo si ambas condiciones son verdaderas. Si una falla, el resultado es False.
or — Regresa True si al menos una de las condiciones es verdadera. Solo regresa False cuando ambas son falsas.
not — Invierte el valor booleano. Si algo era True, lo convierte en False, y viceversa.
Una forma de recordarlos: and es exigente (todo debe cumplirse), or es flexible (basta con uno), y not es el que contradice.
Imagina que estás construyendo un sistema de filtrado de candidatos para una startup mexicana de fintech:
# Perfil de un candidato para trabajo remoto
años_experiencia = 3
nivel_ingles = "intermedio" # "basico", "intermedio", "avanzado"
disponibilidad_remota = True
# ¿Cumple los requisitos mínimos del puesto?
experiencia_ok = años_experiencia >= 2
ingles_ok = nivel_ingles == "avanzado" or nivel_ingles == "intermedio"
remoto_ok = disponibilidad_remota == True
# Evaluación combinada con operadores lógicos
cumple_todo = experiencia_ok and ingles_ok and remoto_ok
print("¿Candidato apto?", cumple_todo) # True
# ¿No tiene experiencia suficiente?
sin_experiencia = not experiencia_ok
print("¿Sin experiencia suficiente?", sin_experiencia) # False
En este ejemplo, el candidato tiene 3 años de experiencia (cumple el mínimo de 2), inglés intermedio (que el filtro acepta) y está disponible para trabajo remoto, así que el resultado final es True.
Precedencia de operadores: ¿quién va primero?
Cuando tienes una expresión con varios operadores al mismo tiempo, Python necesita saber en qué orden evaluarlos. A eso se le llama precedencia de operadores, y funciona de forma muy similar a las reglas matemáticas que aprendiste en la escuela.
El orden de mayor a menor precedencia es aproximadamente este:
Primero se evalúan los paréntesis, luego las potencias, después la multiplicación, división y módulo, luego la suma y resta, después los operadores de comparación (>, <, ==, etc.) y finalmente los operadores lógicos (not, and, or).
La regla práctica más fácil de recordar es esta: usa paréntesis siempre que tengas dudas. Los paréntesis no solo cambian el orden de evaluación, sino que también hacen tu código más legible para otras personas.
Por ejemplo, hay una diferencia importante entre estas dos expresiones:
resultado_1 = 2 + 3 * 4 # Python multiplica primero: 2 + 12 = 14
resultado_2 = (2 + 3) * 4 # Los paréntesis fuerzan la suma: 5 * 4 = 20
print(resultado_1) # 14
print(resultado_2) # 20
Esa diferencia puede parecer pequeña en un ejemplo así, pero en un cálculo de nómina, de intereses o de descuentos en una tienda en línea, equivocarte en el orden de operaciones puede tener consecuencias reales.
Expresiones prácticas: todo junto
Una expresión en Python es cualquier combinación de valores, variables y operadores que produce un resultado. Hasta ahora has visto expresiones aritméticas, de comparación y lógicas por separado, pero en la vida real las combinarás todas en el mismo programa.
Lo más importante es que interiorices estos conceptos: los operadores no son simplemente símbolos en un teclado, son las instrucciones fundamentales con las que le dices a tu programa cómo pensar y calcular. Dominar esto te abre la puerta a construir cualquier tipo de lógica de negocio, desde una calculadora de impuestos hasta el algoritmo de recomendaciones de una app.
Lo que viene a continuación
En la próxima lección, Entrada y salida de datos, vas a aprender a hacer tus programas interactivos. Hasta ahora todo lo que has hecho corre de forma automática sin que el usuario intervenga. Con la función input() podrás pedirle información al usuario directamente desde la terminal, y con print() aprenderás técnicas más avanzadas para mostrar resultados de forma clara y formateada.
Esto es un salto importante: tus programas dejarán de ser estáticos y comenzarán a responder al mundo exterior. Ese es el primer paso real para construir herramientas que otras personas puedan usar.