W3docs

Introducción a los Operadores de Python

Aprende todos los tipos de operadores de Python — aritméticos, de comparación, de asignación, lógicos, bit a bit, de identidad y de pertenencia — con ejemplos y reglas de precedencia.

Los operadores son los símbolos y palabras clave que le indican a Python qué acción realizar sobre uno o más valores. Toda expresión significativa en Python — desde x + 1 hasta if age >= 18 — depende de al menos un operador. Python agrupa sus operadores en siete categorías: aritméticos, de comparación, de asignación, lógicos, de identidad, de pertenencia y bit a bit. Este capítulo explica cada categoría, muestra cuándo usarla y destaca los errores más comunes.

Operadores Aritméticos

Los operadores aritméticos realizan cálculos matemáticos. Python proporciona siete de ellos:

OperadorNombreEjemploResultado
+Suma17 + 522
-Resta17 - 512
*Multiplicación17 * 585
/División17 / 53.4
%Módulo (resto)17 % 52
**Exponenciación2 ** 8256
//División entera17 // 53

Dos operadores merecen especial atención:

  • / siempre devuelve un float en Python 3, incluso al dividir dos enteros (4 / 2 devuelve 2.0, no 2).
  • // (división entera) redondea el resultado hacia el infinito negativo, no hacia cero. Por eso -7 // 2 es -4, no -3.
python— editable, runs on the server

Uso habitual: comprobar par o impar

El operador módulo (%) es la forma estándar de comprobar la divisibilidad:

number = 42
if number % 2 == 0:
    print("even")
else:
    print("odd")
# Output: even

Operadores de Comparación

Los operadores de comparación comparan dos valores y siempre devuelven True o False. Se usan en condiciones, bucles while y en cualquier lugar donde se necesite un resultado booleano.

OperadorSignificadoEjemploResultado
==Igual a5 == 5True
!=Distinto de5 != 3True
>Mayor que5 > 3True
<Menor que5 < 3False
>=Mayor o igual que5 >= 5True
<=Menor o igual que5 <= 4False
python— editable, runs on the server

Encadenamiento de comparaciones

Python permite encadenar múltiples comparaciones en una sola expresión, lo que resulta más natural que en la mayoría de los otros lenguajes:

x = 7
print(1 < x < 10)   # True  — equivalent to (1 < x) and (x < 10)
print(0 < x < 5)    # False

Error común: == vs =

= es el operador de asignación; == comprueba la igualdad. Usar = dentro de una condición provoca un SyntaxError en Python (a diferencia de otros lenguajes donde asigna silenciosamente).

Operadores de Asignación

Los operadores de asignación almacenan valores en variables. Las formas compuestas (+=, -=, …) combinan una operación aritmética o bit a bit con la asignación, haciendo el código más conciso.

OperadorEquivalente aEjemplo
=x = 10
+=x = x + nx += 3
-=x = x - nx -= 3
*=x = x * nx *= 3
/=x = x / nx /= 3
//=x = x // nx //= 3
%=x = x % nx %= 3
**=x = x ** nx **= 3
&=x = x & nx &= 0b1111
|=x = x | nx |= 0b1000
^=x = x ^ nx ^= 0b0101
<<=x = x << nx <<= 1
>>=x = x >> nx >>= 1
python— editable, runs on the server

El operador morsa := (Python 3.8+)

El operador morsa asigna un valor dentro de una expresión. Es útil cuando se quiere evaluar y almacenar un resultado sin escribir la expresión dos veces:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Without walrus: compute length twice
if len(numbers) > 5:
    print(f"Long list: {len(numbers)} items")

# With walrus: assign once, use in condition and body
if (n := len(numbers)) > 5:
    print(f"Long list: {n} items")
# Output: Long list: 10 items

Operadores Lógicos

Los operadores lógicos combinan o invierten expresiones booleanas. Python usa palabras clave en inglés en lugar de símbolos (&&, ||, !).

OperadorSignificadoEjemploResultado
andVerdadero si ambos lados son verdaderosTrue and FalseFalse
orVerdadero si al menos uno de los lados es verdaderoTrue or FalseTrue
notInvierte el valor booleanonot TrueFalse
python— editable, runs on the server

Evaluación en cortocircuito

Python evalúa and y or de forma perezosa (de izquierda a derecha) y se detiene en cuanto el resultado queda determinado:

  • False and <anything> — el lado derecho nunca se evalúa.
  • True or <anything> — el lado derecho nunca se evalúa.

Esto importa cuando el lado derecho tiene un efecto secundario o podría lanzar un error:

user_input = ""
name = user_input or "Anonymous"
print(name)   # Anonymous  (empty string is falsy, so "Anonymous" is returned)

Valores verdaderos y falsos

Los operadores lógicos funcionan con cualquier valor, no solo con True/False. Python trata 0, "", None, [], {} y () como falsos; todo lo demás es verdadero.

Consulta el capítulo Python Data Types para ver la lista completa de valores falsos por tipo.

Operadores de Identidad

Los operadores de identidad comprueban si dos variables apuntan al mismo objeto en memoria, no solo si contienen valores iguales.

OperadorSignificado
isTrue si ambas variables referencian el mismo objeto
is notTrue si referencian objetos distintos
python— editable, runs on the server

Cuándo usar is vs ==

Usa is solo cuando quieras comprobar deliberadamente la identidad del objeto — lo más habitual es al comparar con singletons:

value = None
if value is None:       # correct idiom
    print("No value provided")

# Never do: if value == None — works but is considered bad style

Python almacena en caché los enteros pequeños (normalmente de -5 a 256) y las cadenas internadas, por lo que a is b puede devolver True para dos enteros pequeños creados por separado. Nunca confíes en este comportamiento para enteros o string — usa == para comparar valores.

Operadores de Pertenencia

Los operadores de pertenencia comprueban si un valor existe dentro de una secuencia (lista, tupla, string, conjunto o diccionario).

OperadorSignificado
inTrue si el valor se encuentra en la secuencia
not inTrue si el valor no se encuentra
python— editable, runs on the server

Nota sobre el rendimiento

Para listas y tuplas, in comprueba cada elemento de forma secuencial (O(n)). Para conjuntos y claves de diccionario, in usa una tabla hash y se ejecuta en tiempo constante (O(1)). Prefiere un set cuando necesites realizar muchas comprobaciones de pertenencia en una colección grande.

Operadores Bit a Bit

Los operadores bit a bit trabajan sobre la representación binaria de los enteros, manipulando bits individuales.

OperadorNombreEjemploResultadoNotas
&AND5 & 31El bit es 1 solo si ambos bits son 1
|OR5 | 37El bit es 1 si alguno de los bits es 1
^XOR5 ^ 36El bit es 1 si los bits difieren
~NOT~5-6Invierte todos los bits; el resultado es -(n+1)
<<Desplazamiento a la izquierda5 << 110Desplaza bits a la izquierda (multiplica por 2)
>>Desplazamiento a la derecha20 >> 25Desplaza bits a la derecha (divide por 2)
python— editable, runs on the server

Por qué importan los operadores bit a bit

En el código Python cotidiano no usarás los operadores bit a bit directamente, pero aparecen con frecuencia en:

  • Banderas y permisos — combinar máscaras de bits para representar múltiples opciones en un solo entero.
  • Criptografía y hashing — XOR es un componente básico fundamental.
  • Matemáticas eficientesn << 1 es más rápido que n * 2 en bucles de rendimiento crítico.
  • Trabajo con protocolos binarios — análisis de paquetes de red o cabeceras de archivos.

Precedencia de Operadores

Cuando una expresión mezcla varios operadores, Python los evalúa en un orden fijo (mayor precedencia primero):

PrioridadOperadores
1 (mayor)**
2+x, -x, ~x (unarios)
3*, /, //, %
4+, -
5<<, >>
6&
7^
8|
9==, !=, <, >, <=, >=, is, is not, in, not in
10not
11and
12 (menor)or
# Multiplication before addition (standard math rules apply)
print(2 + 3 * 4)      # 14, not 20

# Use parentheses to override
print((2 + 3) * 4)    # 20

# ** is right-associative: 2 ** 3 ** 2 = 2 ** (3**2) = 2**9
print(2 ** 3 ** 2)    # 512, not 64

# Comparisons before logical operators
print(2 + 3 > 4 and 10 % 3 == 1)  # True and True → True

En caso de duda, usa paréntesis. Hacen explícita la precedencia y mejoran la legibilidad.

Resumen

CategoríaOperadoresUso principal
Aritméticos+ - * / % ** //Cálculos matemáticos
Comparación== != > < >= <=Condiciones, filtrado
Asignación= += -= *= /= //= %= **= &= |= ^= <<= >>=Almacenar y actualizar variables
Lógicosand or notCombinar condiciones booleanas
Identidadis is notComprobaciones de singleton (p. ej. is None)
Pertenenciain not inBúsqueda en secuencias y conjuntos
Bit a bit& | ^ ~ << >>Banderas binarias, datos de bajo nivel

Para temas relacionados, consulta Python Variables, Python If...Else y Python Data Types.

Práctica

Práctica
Which of the following categories does Python operators fall into?
Which of the following categories does Python operators fall into?
Was this page helpful?