As operações são instruções envolvendo um ou dois operandos conectados por um operador de alguma natureza, de atribuição, matemático, lógico, textual etc.
Os operadores são usados para realizar operações envolvendo os operandos, que são os valores de literais e variáveis.
No exemplo abaixo, usamos o operador "+" na operação de soma de operandos literais numéricos, cujo resultado é impresso na tela.
print(10 + 5)
Python divide os operadores nos seguintes grupos:
Os Operadores de Atribuição são utilizados para o apontamento dos objetos de valores em variáveis.
Operador | Exaeplo | O mesmo que |
---|---|---|
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x - 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
//= | x //= 3 | x = x // 3 |
%= | x %= 3 | x = x % 3 |
**= | x **= 3 | x = x ** 3 |
&= | x &= 3 | x = x & 3 |
|= | x |= 3 | x = x | 3 |
^= | x ^= 3 | x = x ^ 3 |
>>= | x >>= 3 | x = x >> 3 |
<<= | x <<= 3 | x = x << 3 |
Exemplos com operadores de atribuição:
Atribuição simples:
x = 5
print(x)
Atribuição de adição:
x = 5
x += 3
print(x)
Atribuição de subtração:
x = 5
x -= 3
print(x)
Atribuição de multiplicação:
x = 5
x *= 3
print(x)
Atribuição de divisão:
x = 5
x /= 3
print(x)
Atribuição de parte inteira da divisão:
x = 5
x //= 3
print(x)
Atribuição de resto (módulo):
x = 5
x %= 3
print(x)
Atribuição de exponenciação:
x = 5
x **= 3
print(x)
Atribuição de and:
x = 5
x &= 3
print(x)
Atribuição de or:
x = 5
x |= 3
print(x)
Atribuição de xor:
x = 5
x ^= 3
print(x)
Atribuição de deslocamento para a direita:
Primeiro declaramos a função lambda nomeada msg que recebe um argumento x e retorna uma string contendo a representação binária de x.
msg = lambda x: f"{bin(x)[2:].zfill(8)} é a representação binária de {x}"
x = 224
print(msg(x))
x >>= 3
print(msg(x))
No exemplo a representação binária de x é alterada de '11111111' para '00011111', deslocando 3 bits para a direita e preenchendo com zeros a esquerda.
Atribuição de deslocamento para a esquerda:
x = 7
print(msg(x))
x <<= 3
print(msg(x))
No exemplo a representação binária de x é alterada de '00000101' para '00101000', deslocando 3 bits para a esquerda e preenchendo com zeros a direita.
Os operadores aritméticos são usados com valores numéricos para realizar operações matemáticas comuns.
Operador | Nome | Exemplo |
---|---|---|
+ | adição | x + y |
- | Subtração | x - y |
* | Multiplicação | x * y |
/ | Divisão | x / y |
% | Módulo | x % y |
** | Exponenciação | x ** y |
// | Divisão do andar | x // y |
Exemplos:
print(f"Adição: 10 + 5 = {10 + 5}")
print(f"Subtração: 10 - 5 = {10 - 5}")
print(f"Multiplicação: 10 * 5 = {10 * 5}")
print(f"Divisão: 10 / 3 = {10 / 3}")
print(f"Módulo: 10 % 3 = {10 % 3}")
print(f"Exponenciação: 10 ** 5 = {10 ** 5}")
print(f"Inteiro da Divisão: 10 // 3 = {10 // 3}")
Os operadores de comparação são usados para comparar dois valores.
Operador | Nome | Exemplo |
---|---|---|
== | Igual | x == y |
!= | Diferente | x != y |
> | Maior | x > y |
< | Menor | x < y |
>= | Maior ou igual | x >= y |
<= | Menor ou igual | x <= y |
Exemplos:
x = 5
y = 10
print(f"x = {x}, y = {y}")
print(f"igual: x == y = {x == y}")
print(f"diferente: x != y = {x != y}")
print(f"maior: x > y = {x > y}")
print(f"menor: x < y = {x < y}")
print(f"maior ou igual: x >= y = {x >= y}")
print(f"menor ou igual: x <= y = {x <= y}")
Os operadores lógicos são usados para combinar instruções condicionais.
Operador | Descrição | Exemplo |
---|---|---|
and | Comparação dois valores são verdadeiros | x > 5 and x < 10 |
or | Comparação se pelo menos de dois operadores é verdadeiro | y < 5 or y > 4 |
not | Inverte o resultado de um valor lógico | not(x > 5 and x < 10) |
Exemplos com os operadores lógicos usando as variáveis x e y.
x = 5
y = 10
Abaixo x é maior que 4 (verdadeiro) e y não é menor que 10: verdadeiro E falso = falso (True and False = False).
print(x > 4 and x < 10)
Abaixo x é maior que 4 (verdadeiro) e y não é menor que 10 (falso): verdadeiro OU falso = verdadeiro (True or False = True).
print(x > 4 or y < 10)
Abaixo a negação do resultado de x < 7 < y.
print(not(x < 7 < y))
Os operadores de identidade são usados para comparar os objetos, não se forem iguais, mas se forem realmente o mesmo objeto, com a mesma localização de memória.
Operador | Descrição |
---|---|
is | Retorna True se ambas as variáveis são o mesmo objeto |
is not | Retorna True se ambas as variáveis não forem o mesmo objeto |
Exemplos:
x = 5
y = 10
print(f"x = {x}, y = {y}")
print(f"x is y = {x is y}")
print(f"x is not y = {x is not y}")
y = x
print(f"y = x")
print(f"x is y = {x is y}")
print(f"x is not y = {x is not y}")
Os operadores de associação são usados para testar se um objeto é apresentada em uma sequência.
Operador | Descrição |
---|---|
in | Retorna True se o valor especificado estiver presente no objeto |
not in | Retorna True se o valor especificado não estiver presente no objeto |
Exemplos:
x = 5
y = [0,5,10,15,20]
print(f"x = {x}, y = {y}")
print(f"x in y = {x in y}")
print(f"x not in y = {x not in y}")
Operadores bit a bit são usados para comparar números inteiros (binários).
Operador | Nome | Descrição |
---|---|---|
& | AND | Define cada bit como 1 se ambos os bits forem 1 |
| | OR | Define cada bit como 1 se um dos dois bits for 1 |
^ | XOR | Define cada bit como 1 se apenas um dos dois bits for 1 |
~ | NOT | Inverte todos os bits |
<< | LEFT | Desloca os bits do valor binário para a esquerda, preenchendo com zeros à direita |
>> | RIGHT | Desloca os bits do valor binário para direita, copiando os bits à esquerda |
Exemplos com os operadores bit a bit usando as variáveis x e y.
x = 170
y = 3
binario = lambda x: bin(x).split('b')[1].zfill(8)
xb = binario(x)
yb = binario(y)
print(f"{xb}={x}")
print(f"{yb}={y}")
Abaixo o operador & (AND BITWISE) do valor de x com o valor de y.
print(f"{xb} &")
print(f"{yb}")
print("--------")
print(f"{binario(x & y)} = {x & y}")
Abaixo o operador | (OR BITWISE) do valor de x com o valor de y.
print(f"{xb} |")
print(f"{yb}")
print("--------")
print(f"{binario(x | y)} = {x | y}")
Abaixo o operador ^ (XOR BITWISE) do valor de x com o valor de y.
print(f"{xb} ^")
print(f"{yb}")
print("--------")
print(f"{binario(x ^ y)} = {x ^ y}")
Abaixo o operador ~ (NOT BITWISE) do valor de x.
print(f"~{xb}")
print("--------")
print(f" {binario(~x)} = {~x}")
Abaixo o operador << (LEFT SHIFT BITWISE) do valor de x com o valor de 3.
print(f"{xb} <<")
print(f"{yb}")
print("-----------")
print(f"{binario(x << y)} = {x << y}")
Abaixo o operador >> (RIGHT SHIFT BITWISE) do valor de x com o valor de 3.
print(f"{xb} >>")
print(f"{yb}")
print("--------")
print(f"{binario(x >> y)} = {x >> y}")