Operadores
Operadores são símbolos ou palavras reservadas que realizam operações sobre valores ou variáveis. Eles são usados para manipular dados, realizar cálculos, comparar valores, tomar decisões e etc.
Operadores Aritiméticos
Usados para realizar cálculos matemáticos.
| Operador | Descrição | Exemplo | Resultado |
|---|---|---|---|
+ |
Adição | 3 + 2 |
5 |
- |
Subtração | 5 - 2 |
3 |
* |
Multiplicação | 3 * 2 |
6 |
/ |
Divisão | 7 / 2 |
3.5 |
// |
Divisão inteira | 7 // 2 |
3 |
% |
Módulo (resto) | 7 % 2 |
1 |
** |
Exponenciação | 2 ** 3 |
8 |
a = 10
b = 3
print(a + b)
print(a - b)
print(a * b)
print(a / b)
# (Op. piso) Divisão de resultado inteiro, é arredondado para BAIXO para o número inteiro mais próximo.
print(a // b)
# Módulo (resto da divisão)
print(a % b)
# Exponenciação (a elevado a b)
print(a ** b)
Operadores de Atribuição
Usados para atribuir valores a variáveis.
| Operador | Descrição | Exemplo | Resultado |
|---|---|---|---|
= |
Atribuição simples | a = 10 |
a vale 10 |
+= |
Adição e atribuição | a += 5 |
a vale 15 |
-= |
Subtração e atribuição | a -= 3 |
a vale 12 |
*= |
Multiplicação e atribuição | a *= 2 |
a vale 24 |
/= |
Divisão e atribuição | a /= 4 |
a vale 6.0 |
//= |
Divisão inteira e atribuição | a //= 2 |
a vale 3 |
%= |
Módulo e atribuição | a %= 2 |
a vale 1 |
**= |
Exponenciação e atribuição | a **= 3 |
a vale 1 |
resultado = 0
# pega o valor de resultado divide por 2 e salva na própria variável
resultado /= 2
print(resultado)
Operadores de Comparação
Usados para comparar valores. Retornam True ou False.
| Operador | Descrição | Exemplo | Resultado |
|---|---|---|---|
== |
Igual a | 3 == 3 |
True |
!= |
Diferente de | 3 != 4 |
True |
> |
Maior que | 5 > 3 |
True |
< |
Menor que | 5 < 3 |
False |
>= |
Maior ou igual a | 5 >= 5 |
True |
<= |
Menor ou igual a | 3 <= 5 |
True |
a = 10
b = 5
print(a == b) # Igual a
print(a != b) # Diferente de
print(a > b) # Maior que
print(a < b) # Menor que
print(a >= b) # Maior ou igual a
print(a <= b) # Menor ou igual a
Operadores Lógicos
Usados para combinar expressões lógicas.
| Operador | Descrição | Exemplo | Resultado |
|---|---|---|---|
and |
Retorna True se ambas as condições forem verdadeiras |
(5 > 3) and (2 < 4) |
True |
or |
Retorna True se pelo menos uma condição for verdadeira |
(5 > 3) or (2 > 4) |
True |
not |
Inverte o valor lógico | not (5 > 3) |
False |
x = True
y = False
# E lógico (True se ambos forem True)
print(x and y)
# Ou lógico (True se pelo menos um for True)
print(x or y)
# Não lógico (inverte o valor lógico)
print(not x)
Operadores de Identidade
Usados para verificar se duas variáveis referem-se ao mesmo objeto. Ou seja, Verifica se dois objetos são a mesma instância na memória. NÃO se são iguais, mas se são os mesmos! Em python objetos primitivos com mesmo valor tem o mesmo endereço, diferentes das coleções, que mesmo que tenha outros valores não tem o mesmo endereço (não é o mesmo objeto).
| Operador | Descrição | Exemplo | Resultado |
|---|---|---|---|
is |
Retorna True se forem o mesmo objeto |
a is b |
True ou False |
is not |
Retorna True se forem objetos diferentes |
a is not b |
True ou False |
Em linguagem C, onde x=10, o número 10 é um valor literal simples. Em Python, o número 10 é um objeto da classe int que encapsula o valor 10 e inclui métodos associados, como bit_length(). Objetos mutáveis (como listas) sempre resultam em objetos únicos, enquanto objetos imutáveis (como inteiros e strings) podem ser reutilizados.
Interning: Para economizar memória e acelerar o desempenho, Python mantém um cache interno de inteiros pequenos (geralmente entre -5 e 256). Se você criar variáveis que referenciem inteiros nesse intervalo,o python pode reutilizar o mesmo objeto na memória.
| Valor VS Identidade
lista_a = [1, 2, 3, 4]
lista_b = [1, 2, 3, 4]
# retornará True pois tem o mesmo conteúdo no momento
print(lista_a == lista_b)
Exemplo com Operador de comparação, ==, que confere o valor do objeto
lista_a = [1, 2, 3, 4]
lista_b = [1, 2, 3, 4]
# retornará False pois não são o mesmo objeto, apesar de terem o mesmo conteúdo
print(lista_a is lista_b)
a = 10
b = 10
# retornará True pois são o mesmo objeto
print(a is b)
Exemplo com operador de identidade que confere se são o mesmo objeto
import sys
s1 = sys.intern("Python_rocks")
s2 = sys.intern("Python_rocks")
print(s1 is s2) # True (agora são o mesmo objeto)
É possivel forçar strings internadas (interning), para obrigar a reutilização de objetos. Isso pode ser útil para otimizar programas que lidam com muitas strings repetidas, como processamento de texto. Mas o Python faz isso automaticamente para strings curtas e simples (sem espaços ou caracteres especiais).
Operadores de Associação
Usados para verificar se um valor está presente em uma sequência (como listas, strings ou tuplas).
| Operador | Descrição | Exemplo | Resultado |
|---|---|---|---|
in |
Retorna True se o valor estiver presente |
'a' in 'apple' |
True |
not in |
Retorna True se o valor não estiver presente |
'b' not in 'apple' |
True |
Operador de atribuição em expressão - Morsa
Também conhecido como Walrus Operator, permite atribuir um valor a uma variável como parte de uma expressão. Isso torna o código mais conciso ao evitar uma linha adicional apenas para atribuição.
| Morsa
entrada = input("Digite algo: ")
if len(entrada) > 5:
print(f"A entrada tem mais de 5 caracteres: {entrada}")
Exemplo de uso sem o operador Morsa
if (entrada := input("Digite algo: ")) and len(entrada) > 5:
print(f"A entrada tem mais de 5 caracteres: {entrada}")
Uso com operador morsa para poupar linhas de códigos.