
Después de aprender a almacenar información en variables, el siguiente paso consiste en trabajar con esos datos. Gracias a los operadores podremos realizar cálculos, combinar valores, comparar datos y construir expresiones que más adelante utilizaremos para tomar decisiones en nuestros programas.
1. ¿Qué es una expresión?
Una expresión es una combinación de valores, variables, operadores y funciones que Python evalúa para obtener un único resultado.
Una expresión está formada por operandos (valores o variables) y operadores, que indican la operación que debe realizarse.
Por ejemplo, en la expresión 5 + 3, los operandos son 5 y 3, mientras que + es el operador.
5 + 3
produce el resultado:
8
También podemos utilizar variables en las expresiones.
precio = 20 cantidad = 3 total = precio * cantidad print(total)
Resultado:
60
Las expresiones están presentes en prácticamente todos los programas. Podemos utilizarlas para realizar cálculos, modificar variables o comprobar si se cumple una determinada condición.
2. Operadores aritméticos
Los operadores aritméticos permiten realizar operaciones matemáticas. Trabajan con datos numéricos y permiten realizar desde operaciones sencillas, como sumas o restas, hasta cálculos más complejos, como potencias o divisiones enteras.
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
| + | Suma | 5 + 2 | 7 |
| – | Resta | 5 – 2 | 3 |
| * | Multiplicación | 5 * 2 | 10 |
| / | División (devuelve un float) | 5 / 2 | 2.5 |
| // | División entera (descarta la parte decimal) | 5 // 2 | 2 |
| % | Resto de una división | 5 % 2 | 1 |
| ** | Potencia | 5 ** 2 | 25 |
¿Sabías que…? Aunque el resultado sea un número entero, el operador / siempre devuelve un valor de tipo float. Si queremos obtener un resultado entero utilizando una división, podemos emplear el operador // cuando sea apropiado.
Consejo: Recuerda que en Python la multiplicación se realiza con el asterisco (*), no con la letra x ni con el símbolo × que utilizamos en matemáticas.
¿Sabías que…? El operador % devuelve el resto de una división. Más adelante lo utilizaremos para comprobar si un número es par o impar, calcular horas y minutos o trabajar con ciclos repetitivos.
Ejemplo:
numero1 = 12 numero2 = 5 print(numero1 + numero2) print(numero1 - numero2) print(numero1 * numero2) print(numero1 / numero2) print(numero1 // numero2) print(numero1 % numero2) print(numero1 ** numero2)
Resultado:
17 7 60 2.4 2 2 248832
Cuando el operador + se utiliza con cadenas de texto (str), no realiza una suma, sino que une ambos textos. Esta operación recibe el nombre de concatenación.
Por ejemplo:
nombre = "Andrea" apellido = "Lluch" print(nombre + " " + apellido)
Resultado:
Andrea Lluch
3. Operadores de asignación
El operador de asignación (=) sirve para guardar un valor en una variable.
edad = 18
Python también dispone de operadores abreviados que permiten actualizar el valor de una variable. Estos operadores permiten modificar el valor de una variable de forma más breve que escribiendo la asignación completa.
| Operador | Equivale a |
|---|---|
| += | x = x + valor |
| -= | x = x – valor |
| *= | x = x * valor |
| /= | x = x / valor |
Ejemplo:
puntos = 10 puntos += 5 print(puntos) puntos *= 2 print(puntos) puntos -= 8 print(puntos)
Resultado:
15 30 22
4. Operadores de comparación
Permiten comparar dos valores y siempre producen un resultado lógico: True si la condición se cumple o False si no se cumple.
| Operador | Significado |
|---|---|
| == | Igual que |
| != | Distinto de |
| > | Mayor que |
| < | Menor que |
| >= | Mayor o igual que |
| <= | Menor o igual que |
Ejemplo:
edad = 18 print(edad == 18) print(edad > 18) print(edad < 30) print(edad != 20)
Resultado:
True False True True
5. Operadores lógicos
Los operadores lógicos permiten combinar varias condiciones.
| Operador | Significado |
|---|---|
| and | Y |
| or | O |
| not | No |
Ejemplo:
edad = 20 carnet = True print(edad >= 18 and carnet) print(edad >= 18 or carnet) print(not carnet)
Resultado:
True True False
Estos operadores se utilizan para combinar varias condiciones y serán fundamentales cuando aprendamos las estructuras condicionales.
6. Prioridad de operadores
Cuando una expresión contiene varios operadores, Python no los evalúa de izquierda a derecha sin más, sino que sigue un orden de prioridad, similar al que utilizamos en matemáticas.
De forma simplificada, el orden es el siguiente:
- Paréntesis
() - Potencias
** - Multiplicación, división, división entera y resto (
*,/,//,%) - Suma y resta (
+,-) - Operadores de comparación (
==,!=,<,>,<=,>=) - Operadores lógicos (
not,and,or)
Por ejemplo:
resultado = 4 + 3 * 2 print(resultado)
Resultado:
10
En este caso, la multiplicación se realiza antes que la suma, por lo que primero se calcula 3 * 2 y después se suma 4.
Si queremos modificar ese orden utilizamos paréntesis.
resultado = (4 + 3) * 2 print(resultado)
Resultado:
14
Como los paréntesis tienen la mayor prioridad, primero se calcula 4 + 3 y después el resultado se multiplica por 2.
Siempre que una expresión pueda generar dudas, es recomendable utilizar paréntesis. Además de modificar el orden de evaluación, hacen que el código resulte mucho más fácil de leer.
Consejo: No escribas expresiones excesivamente largas. Dividir un cálculo complejo en varias variables hace que el programa sea mucho más fácil de leer y mantener.
Al finalizar este capítulo ya sabemos realizar cálculos, modificar variables y comparar valores mediante operadores. En el siguiente capítulo aprenderemos a solicitar datos al usuario mediante la función input(), convertir los datos introducidos al tipo adecuado y crear programas interactivos.
7. Actividad
Crea un archivo llamado operadores.py.
- Declara dos variables llamadas
numero1ynumero2y asígnales los valores12y5. - Utiliza estas variables para calcular y mostrar:
- La suma.
- La resta.
- La multiplicación.
- La división.
- La división entera.
- El resto de la división.
- La potencia de
numero1elevada anumero2.
- Comprueba las siguientes condiciones utilizando operadores de comparación:
- ¿Los dos números son iguales?
- ¿
numero1es mayor quenumero2? - ¿
numero2es menor o igual que10?
- Utiliza operadores lógicos para comprobar:
- Si ambos números son mayores que cero.
- Si alguno de los dos números es igual a
5.
- Escribe las siguientes expresiones y explica por qué ambos resultados son diferentes.
4 + 3 * 2 (4 + 3) * 2
Ejemplo:
# Variables
numero1 = 12
numero2 = 5
# Operadores aritméticos
print("Suma:", numero1 + numero2)
print("Resta:", numero1 - numero2)
print("Multiplicación:", numero1 * numero2)
print("División:", numero1 / numero2)
print("División entera:", numero1 // numero2)
print("Resto:", numero1 % numero2)
print("Potencia:", numero1 ** numero2)
# Operadores de comparación
print("¿Son iguales?", numero1 == numero2)
print("¿numero1 es mayor?", numero1 > numero2)
print("¿numero2 es menor o igual que 10?", numero2 <= 10)
# Operadores lógicos
print("¿Ambos son mayores que cero?", numero1 > 0 and numero2 > 0)
print("¿Alguno es igual a 5?", numero1 == 5 or numero2 == 5)
# Prioridad de operadores
print("4 + 3 * 2 =", 4 + 3 * 2)
print("(4 + 3) * 2 =", (4 + 3) * 2)
Salida esperada:
Suma: 17 Resta: 7 Multiplicación: 60 División: 2.4 División entera: 2 Resto: 2 Potencia: 248832 ¿Son iguales? False ¿numero1 es mayor? True ¿numero2 es menor o igual que 10? True ¿Ambos son mayores que cero? True ¿Alguno es igual a 5? True 4 + 3 * 2 = 10 (4 + 3) * 2 = 14
8. Ejercicios resueltos con operadores
Los siguientes ejercicios muestran algunos ejemplos prácticos del uso de los operadores. Intenta resolverlos por tu cuenta antes de consultar la solución.
8.1. Año de nacimiento
Crea un archivo llamado anio_nacimiento.py.
Declara las siguientes variables:
nombre = "Andrea" edad = 41 anio_actual = 2026
Calcula el año aproximado de nacimiento y muestra el siguiente resultado:
Hola Andrea Si tienes 41 años, naciste aproximadamente en 1985
Solución:
nombre = "Andrea"
edad = 41
anio_actual = 2026
anio_nacimiento = anio_actual - edad
print("Hola", nombre)
print("Si tienes", edad, "años, naciste aproximadamente en", anio_nacimiento)
8.2. Perímetro de un rectángulo
Crea un archivo llamado perimetro.py.
Declara las siguientes variables:
base = 6.5 altura = 2.75
Calcula el perímetro del rectángulo utilizando la fórmula:
Perímetro = 2 * (base + altura)
Muestra el resultado por pantalla.
Solución:
base = 6.5
altura = 2.75
perimetro = 2 * (base + altura)
print("Base:", base)
print("Altura:", altura)
print("Perímetro:", perimetro)
8.3. Importe de una compra
Crea un archivo llamado compra.py.
Declara las siguientes variables:
producto = "cuadernos" precio = 2.95 cantidad = 3
Calcula el importe total de la compra.
Muestra un resultado similar al siguiente:
Has comprado 3 cuadernos. Total: 8.85 €
Solución:
producto = "cuadernos"
precio = 2.95
cantidad = 3
total = precio * cantidad
print("Has comprado", cantidad, producto + ".")
print("Total:", total, "€")
8.4. Conversión de minutos
Crea un archivo llamado tiempo.py.
Declara la siguiente variable:
minutos = 135
Calcula cuántas horas completas y cuántos minutos sobran.
Muestra el resultado:
135 minutos son 2 horas y 15 minutos.
Solución:
minutos = 135 horas = minutos // 60 resto = minutos % 60 print(minutos, "minutos son", horas, "horas y", resto, "minutos.")
8.5. Índice de masa corporal
Crea un archivo llamado imc.py.
Declara las siguientes variables:
peso = 68 altura = 1.75
Calcula el índice de masa corporal mediante la fórmula:
IMC = peso / altura²
Muestra el resultado.
Solución:
peso = 68
altura = 1.75
imc = peso / (altura ** 2)
print("Peso:", peso, "kg")
print("Altura:", altura, "m")
print("Tu IMC es:", imc)
9. Test de autoevaluación
Comprueba si has comprendido los conceptos principales de este capítulo respondiendo al siguiente test. Si alguna respuesta no es correcta, revisa el apartado correspondiente antes de continuar con el siguiente tema.
9.1. ¿Qué es una expresión en Python?
a) Un comentario.
b) Una combinación de valores, variables y operadores que produce un resultado. ✅
c) Una función.
d) Una cadena de texto.
Retroalimentación: Una expresión combina valores y operadores para obtener un resultado.
9.2. ¿Qué operador se utiliza para calcular una potencia?
a) ^
b) *
c) ** ✅
d) //
Retroalimentación: En Python las potencias se calculan utilizando **.
9.3. ¿Qué mostrará este programa?
print(10 / 2)
a) 5
b) 5.0 ✅
c) 4
d) Error
Retroalimentación: El operador / siempre devuelve un número decimal (float).
9.4. ¿Qué operador devuelve únicamente la parte entera de una división?
a) /
b) %
c) // ✅
d) **
Retroalimentación: // realiza una división entera.
9.5. ¿Qué mostrará este programa?
print(10 % 3)
a) 3
b) 1 ✅
c) 0
d) 10
Retroalimentación: % devuelve el resto de la división.
9.6. ¿Qué hace el operador +=?
a) Compara dos valores.
b) Incrementa una variable sumándole un valor. ✅
c) Divide dos números.
d) Convierte un número en texto.
Retroalimentación: x += 5 equivale a escribir x = x + 5.
9.7. ¿Qué operador se utiliza para comprobar si dos valores son iguales?
a) =
b) == ✅
c) !=
d) >=
Retroalimentación: == compara valores. = sirve para asignarlos.
9.8. ¿Qué operador lógico exige que todas las condiciones sean verdaderas?
a) or
b) not
c) and ✅
d) ==
Retroalimentación: Con and todas las condiciones deben cumplirse.
9.9. ¿Qué resultado produce la siguiente expresión?
5 > 3
a) 5
b) True ✅
c) False
d) Error
Retroalimentación: Como 5 es mayor que 3, el resultado es True.
9.10. ¿Qué operador lógico devuelve True si al menos una condición es verdadera?
a) and
b) or ✅
c) not
d) ==
Retroalimentación: or solo necesita que una condición sea verdadera.
9.11. ¿Qué mostrará este programa?
print(3 + 2 * 4)
a) 20
b) 11 ✅
c) 20.0
d) 24
Retroalimentación: La multiplicación tiene prioridad sobre la suma.
9.12. ¿Qué operador invierte un valor lógico?
a) and
b) or
c) not ✅
d) %
Retroalimentación: not True devuelve False y viceversa.
9.13. ¿Cuál de estos operadores sirve para obtener el resto de una división?
a) /
b) //
c) % ✅
d) *
Retroalimentación: El operador % devuelve el resto de la división.
9.14. ¿Qué mostrará este programa?
x = 4 x *= 3 print(x)
a) 7
b) 12 ✅
c) 43
d) Error
Retroalimentación: x *= 3 equivale a x = x * 3.
9.15. ¿Cuál de las siguientes afirmaciones es correcta?
a) El operador = sirve para comparar valores.
b) Los paréntesis permiten modificar el orden de evaluación de una expresión. ✅
c) // devuelve siempre un número decimal.
d) % calcula una potencia.
Retroalimentación: Los paréntesis tienen prioridad y permiten cambiar el orden en el que Python evalúa una expresión.
10. Actividad de ampliación
10.1. Un mismo cálculo en distintos lenguajes
Aunque cada lenguaje de programación tiene su propia sintaxis, la mayoría utilizan operadores muy similares para realizar cálculos.
Por ejemplo, para calcular el área de un rectángulo podríamos escribir:
Python
base = 5 altura = 3 area = base * altura print(area)
Java
int base = 5; int altura = 3; int area = base * altura; System.out.println(area);
JavaScript
let base = 5; let altura = 3; let area = base * altura; console.log(area);
Como puedes observar, la operación matemática es exactamente la misma. Lo que cambia es la sintaxis utilizada para declarar las variables o mostrar el resultado.
Reflexiona y responde:
- ¿Qué partes del programa son iguales en los tres lenguajes?
- ¿Qué diferencias encuentras entre ellos?
- ¿Cuál te parece más fácil de leer? Justifica tu respuesta.
Objetivo: comprender que los conceptos de programación son comunes a muchos lenguajes y que la principal diferencia suele estar en la sintaxis.
10.2. Para saber más
Si quieres conocer con más detalle todos los operadores disponibles en Python, puedes consultar la documentación oficial: https://docs.python.org/es/3/reference/expressions.html