Contenidos
Operadores en Python
Python posee operadores aritméticos, relacionales, lógicos, bit a bit, de asignación, pertenencia e identidad
Operadores aritméticos
Python suministra las operaciones básicas con los únicos añadidos de los operadores resto, cociente entero y exponenciación
Operadores aritméticos | ||
Operador | Operación | Descripción |
+ | Suma | Suma dos operandos |
– | Resta |
Resta al operando de la izquierda el valor del operando de la derecha Utilizado sobre un único operando, le cambia el signo |
* | Multiplicación | Multiplicación de dos operandos |
/ | División | Divide el operando de la izquierda por el de la derecha (el resultado siempre es un float) |
% | Resto | Obtiene el resto de dividir el operando de la izquierda por el de la derecha |
// | Cociente entero | Obtiene el cociente entero de dividir el operando de la izquierda por el de la derecha |
** | Exponenciación | El resultado es el operando de la izquierda elevado a la potencia del operando de la derecha |
Nota En Python, usar el operador + aplicado a strings, concatena ambas strings en una sola
Operadores relacionales
Se emplean típicamente en las expresiones condicionales
Los operadores relacionales devuelven valores booleanos
Los operandos pueden ser tanto numéricos como strings
Operadores relacionales | ||
Operador | Operación | Descripción |
> | Mayor que |
True si el operando de la izquierda es estrictamente mayor que el de la derecha False en caso contrario |
< | Menor que |
True si el operando de la izquierda es estrictamente menor que el de la derecha False en caso contrario |
> = | Mayor o igual que |
True si el operando de la izquierda es mayor o igual que el de la derecha False en caso contrario |
< = | Menor o igual que |
True si el operando de la izquierda es menor o igual que el de la derecha False en caso contrario |
! = | Distinto que |
True si los operandos son distintos False en caso contrario |
= = | Igual que |
True si el operando de la izquierda es igual que el de la derecha False en caso contrario |
Los objetos de diferentes tipos, excepto los tipos numéricos, nunca se comparan igual
El operador == siempre está definido, pero para algunos tipos de objetos (por ejemplo, objetos de clase) es equivalente a is
Las instancias no idénticas de una clase normalmente se comparan como no iguales a menos que la clase defina el método __eq__()
Las instancias de una clase no se pueden ordenar con respecto a otras instancias de la misma clase u otros tipos de objeto, a menos que la clase defina los métodos __lt__() y __gt__()
Operadores lógicos
Los operandos lógicos está relacionados con los relacionales ya que normalmente los operandos que usan son resultado de expresiones relacionales
Los valores resultantes son booleanos
Operadores lógicos | |
Operador | Descripción |
AND | True si ambos son True |
OR | True si uno de ellos es True |
NOT | Si era True pasa a False y viceversa |
Operadores bit a bit
La forma de trabajar de estos operadores es convertir a binario los operandos y luego operar con ellos bit a bit
Operadores bit a bit | Operador | Operación | Descripción |
& | AND | Cambia el bit a 1 si ambos eran 1 |
| | OR | Cambia el bit a 1 si uno de ellos era 1 |
^ | XOR | Cambia el bit a 1 si uno de ellos era 1, pero no ambos |
~ | NOT |
Cambia el bit a 1 si era 0 Cambia el bit a 0 si era 1 |
<< | Propagación a la izquierda | Desplaza el valor hacia la izquierda introduciendo ceros, si se sale de rango se pierden valores |
>> | Propagación a la derecha | Desplaza el valor hacia la derecha introduciendo por la izquierda el bit de signo y eliminando los valores que se salgan por la derecha |
Nota Los operadores de propagación toman dos operandos: el primero es la variable a propagar y el segundo es el número de posiciones a propagar
Operadores de asignación
La asignación también es un operador que devuelve la variable modificada
El operador de asignación en Python es =
Los operadores de asignación que se muestran a continuación no son sino abreviaturas que hacen más cómoda y simples las expresiones, aunque a veces sean más ilegibles
Operadores de asignación | ||
Operador | Expresión | Equivalencia |
= |
A = B = C D = ‘Texto’ |
A = C B = C D = ‘Texto’ |
+ = | A + = 4 | A = A + 4 |
– = | A – = 3 * B | A = A – (3 * B) |
* = | A * = 2 | A = A * 2 |
** = | A ** = 2 | A = A ** 2 |
/ = | A / = 35 + B | A = A / (35 + B) |
% = | A % = B | A = A % B |
// = | A // = B | A = A // B |
>> = | A >> = 1 | A = A >> 1 |
<< = | A << = B | A = A << B |
& = | A & = (C + = 3) | C = C +3 A = A & C |
^ = | A ^ = 2 | A = A ^ 2 |
| = | A | = C | A = A | C |
Operadores de pertenencia
Los operadores de pertenencia se utilizan para comprobar si un valor o variable se encuentran en una secuencia (list, tuple, dict, set o str)
Operadores de pertenencia | ||
Operador | Expresión | Equivalencia |
in | Incluido |
Devuelve True si el valor se encuentra en una secuencia False en caso contrario |
not in | No incluido |
Devuelve True si el valor no se encuentra en una secuencia False en caso contrario |
Operadores de identidad
Estos operadores se van a utilizar para comprobar si dos variables son, o no, el mismo objeto
Operadores de pertenencia | ||
Operador | Expresión | Equivalencia |
is | Objetos iguales |
Devuelve True si ambos operandos hacen referencia al mismo objeto False en caso contrario |
is not | Objetos distintos |
Devuelve True si ambos operandos no hacen referencia al mismo objeto False en caso contrario |
Preferencia
La preferencia de los operadores va a determinar el orden en que se ejecuten en una expresión determinada
Usando paréntesis controlaremos que las operaciones se lleven a cabo según nosotros queramos
En Python la preferencia de los operadores de mayor a menor es la siguiente:
Preferencia | |||||||||||||
Paréntesis | ( | ) | |||||||||||
Exponenciación | ** | ||||||||||||
Unarios | ~ | + | – | ||||||||||
Mul / Div / Resto / Div ent | * | / | % | // | |||||||||
Suma / Resta | + | – | |||||||||||
Propagación | << | >> | |||||||||||
Bit a bit | & | ||||||||||||
Bit a bit | ^ | | | |||||||||||
Relacionales | < | < = | > | > = | |||||||||
Igualdad | = = | != | |||||||||||
Asignación | = | + = | – = | * = | * * = | / = | // = | % = | & = | | = | ^ = | >> = | << = |
Identidad | is | is not | |||||||||||
Pertenencia | in | not in |