Operadores en Python. Tipos y prioridad.

Operadores en Python. Tipos y prioridad.

febrero 8, 2024
Operadores Python

Contenido

Clasificación de los Operadores en Python

Existen dos formas de clasificar en Python los operadores.

Se pueden clasificar según si afectan a una o dos variables o valores.

  • Unarios
  • Binarios

También se pueden clasificar según su tipo o funcionalidad:

  1. Aritméticos
  2. Lógicos
  3. De asignación
  4. De comparación
  5. De Pertenencia
  6. De identidad
  7. A nivel de bit
  8. De expresiones de asignación
  9. De concatenación y repetición

Aritméticos

Los operadores aritméticos se utilizan con valores numéricos para realizar operaciones matemáticas comunes.

Operador Sintaxis Descripción
+ a+b Suma
a-b Resta
* a*b Multiplicación
/ a/b División
// a//b División Entera
% a%b Módulo o Resto
** a**b Exponente
+ +a Positivo (unario)
-a Negación aritmética (unario)

Lógicos

Los operadores lógicos se utilizan para combinar sentencias condicionales.

Operador Sintaxis Descripción
and a and b Y lógico
or a or b O lógico
not not a Negación lógica

De asignación

Los operadores de asignación se utilizan para asignar valores a variables.

Operador Sintaxis Descripción
= a=b Asignación
+= a+=b Asignación con suma (a=a+b)
-= a-=b Asignación con resta (a=a-b)
*= a*=b Asignación con multiplicación (a=a*b)
/= a/=b Asignación con división (a=a/b)
//= a//=b Asignación con división entera (a=a//b)
%= a%=b Asignación con módulo o resto (a=a%b)
**= a**=b Asignación con exponente (a=a**b)

De comparación

Los operadores de comparación se utilizan para comparar dos valores.

Operador Sintaxis Descripción
== a==b Igual a
!= a!=b Diferente de
> a>b Mayor que
< a<b Menor que
>= a>=b Mayor o igual que
<= a<=b Menor o igual que

De pertenencia

Los operadores de pertenencia se utilizan para comprobar si una secuencia se presenta en un objeto. Siempre devuelven un valor True o False.

Operador Sintaxis Descripción
in seq in obj Devuelve True si una secuencia con el valor especificado está presente en el objeto
not in seq not in obj Devuelve True si una secuencia con el valor especificado no está presente en el objeto

De identidad

Los operadores de identidad se utilizan para comparar los objetos, no si son iguales, sino si son realmente el mismo objeto, con la misma posición de memoria. Siempre devuelven un valor True o False.

Operador Sintaxis Descripción
is obj1 is obj2 Devuelve True si ambas variables son el mismo objeto
is not obj1 is not obj2 Devuelve True si ambas variables no son el mismo objeto

A nivel de bit

Los operadores bit a bit se utilizan para comparar números (binarios).

Operador Sintaxis Descripción
& a&b AND
| a|b OR
^ a^b XOR
~ ~a NOT (unario)
<< a << cantidad de bits Desplazamiento a la izquierda
>> a >> cantidad de bits Desplazamiento a la derecha

De expresiones de asignación

A partir de la versión de Python 3.8 se crea un nuevo operador que permite asignar un valor a una variable dentro de una expresión. Se conoce informalmente como el operador Morsa (Walrus en inglés).

Operador Sintaxis Descripción
:= a:=expresión Expresión de asignación

De concatenación y repetición

Los operadores + y * adquieren un significado ligeramente diferente cuando se utilizan con tipos de datos de secuencia.

Operador Sintaxis Descripción
+ seq1+seq2 Concatenación de secuencias
* seq*n Repetición de una secuencia n veces

Prioridad de los operadores

Al igual que en matemáticas, en Python no todos los operadores tienen el mismo nivel de prioridad, por lo tanto se ejecutan en un orden determinado.

En la siguiente tabla se muestran los operadores ordenados por prioridad, desde el nivel más alto (mayor prioridad) hasta el más bajo:

Operador Descripción
** Exponente
+   –   ~ Unarios positivo, negativo y de bits (complemento a uno)
*   /   //   % Multiplicación, división, división entera y módulo
+   – Suma y resta
<<   >> Desplazamiento a la izquierda y a la derecha
& AND a nivel de bits
^ XOR a nivel de bits
| OR a nivel de bits
==   !=   >   >=   <   <=   is   is not   in   not in Operadores de comparación e identidad
not Negación lógica
and Y lógico
or O lógico
:= Expresión de asignación

¿Pero qué ocurre cuando en una expresión aparecen dos operadores de la misma prioridad?

Los operadores se enlazan primero con el valor de la izquierda. Por lo que eso significa que el cálculo de una expresión se realiza siempre de izquierda a derecha.

Existe una excepción a esta norma en el caso del operador de exponenciación **. Con dicho operador se enlaza primero con el valor de la derecha, es decir el cálculo se realiza al revés, de derecha a izquierda.

Los paréntesis

Se puede hacer uso de los paréntesis (tantos como sean necesarios) para modificar el orden de prioridad en los cálculos de una operación, al igual que se hace en las operaciones aritméticas, donde las sub-expresiones dentro de los paréntesis siempre se calculan primero.

Aun cuando no cambien el orden de las operaciones, se pueden usar los paréntesis para mejorar la legibilidad de una expresión.

El arte de programar

El arte de programar

La programación es el proceso creativo de escribir el código más sencillo posible, para que una computadora pueda dar una respuesta óptima a una necesidad humana.