Pular para o conteúdo
</>RoByte

Buscar cursos e aulas

Aulas do curso

Vídeo em breve

Por enquanto, esta aula está disponível só em texto — o vídeo entra assim que ficar pronto.

Primeiros passos

Operadores e operações

Operadores aritméticos, de comparação e com texto, atribuição composta e a ordem em que o Python calcula expressões. · 16 min

Código no GitHub

Agora que você já sabe guardar valores em variáveis, é hora de fazer contas com eles. Esta aula cobre os operadores que você vai usar o tempo todo: aritméticos, de atribuição e operações com texto.

Operadores aritméticos

soma = 7 + 3        # 10
subtracao = 7 - 3   # 4
multiplicacao = 7 * 3  # 21
divisao = 7 / 3      # 2.3333... (sempre devolve float)
divisao_inteira = 7 // 3  # 2  (descarta o resto)
resto = 7 % 3         # 1  (o resto da divisão)
potencia = 7 ** 2      # 49

Dica

% (módulo/resto) é mais útil do que parece: numero % 2 == 0 é o jeito clássico de checar se um número é par.

Ordem das operações

Python segue a mesma ordem que você aprendeu na escola: potência antes de multiplicação/divisão, e essas antes de soma/subtração. Parênteses sempre vêm primeiro.

resultado = 2 + 3 * 4      # 14, não 20 (multiplicação primeiro)
resultado = (2 + 3) * 4    # 20, com parênteses forçando a ordem

Atenção

Na dúvida, use parênteses — mesmo quando não são estritamente necessários. (2 + 3) * 4 é mais fácil de ler do que confiar que todo mundo lembra a ordem de precedência de cabeça.

Operadores de comparação

Além dos aritméticos, existem os operadores que comparam dois valores e sempre devolvem um bool (True ou False) — eles vão ser essenciais na próxima aula, sobre condicionais:

print(7 == 7)    # True  (igual a)
print(7 == 8)    # False
print(7 != 8)    # True  (diferente de)
print(7 > 3)      # True  (maior que)
print(7 < 3)      # False (menor que)
print(7 >= 7)     # True  (maior ou igual)
print(7 <= 3)     # False (menor ou igual)

Atenção

Não confunda = com ==. = atribui um valor (você viu isso na aula passada); == compara dois valores e devolve True/False. x = 5 guarda 5 em x; x == 5 pergunta se x vale 5, sem mudar nada. Escrever = onde deveria ser == é um dos erros mais comuns entre iniciantes — em Python, ao menos, if x = 5 nem roda: dá erro de sintaxe na hora, em vez de silenciosamente fazer a coisa errada.

Comparações também funcionam com texto (ordem alfabética) e podem ser encadeadas, um recurso que nem toda linguagem tem:

print("banana" < "laranja")   # True (ordem alfabética)

idade = 20
print(0 <= idade <= 17)         # False — equivale a "0 <= idade and idade <= 17"
print(18 <= idade <= 65)        # True

Atribuição composta

É comum atualizar uma variável com base no próprio valor dela. Python tem um atalho para isso:

pontos = 10
pontos = pontos + 5   # jeito explícito
pontos += 5             # mesma coisa, forma curta

# também existem: -=, *=, /=, //=, **=

Operações com str

Texto também tem operadores, só que com significados diferentes:

nome = "Ada" + " " + "Lovelace"   # concatenação: "Ada Lovelace"
risada = "ha" * 3                   # repetição: "hahaha"

Atenção

"3" + "3" resulta em "33" (concatenação de texto), não 6. Misturar str e int no + ("idade: " + 28) dá TypeError — é preciso converter um dos dois primeiro, com str(28).

Exercícios

Exercício

1. Aquecimento. Calcule a área de um retângulo com base = 8 e altura = 3.5, e imprima o resultado.

Exercício

2. Par ou ímpar. Peça um número inteiro e use o operador % para imprimir se ele é par ou ímpar (sem usar if ainda — só calcule e imprima o resto; if é assunto da próxima aula do curso).

Exercício

3. Desafio. Você tem total_segundos = 7385. Usando só // e %, calcule quantas horas, minutos e segundos isso representa, e imprima no formato "2h 3min 5s". Dica: primeiro descubra quantas horas cabem em total_segundos // 3600, depois trabalhe com o resto.