PythonNúmeros

Números

Trabalhar com números é uma das tarefas mais comuns em programação. Python tem duas categorias principais de números e um conjunto completo de operações.

Tipos numéricos

Em Python, números se dividem em dois tipos principais:

# int — números inteiros
idade = 25
populacao = 8_000_000_000

# float — números com casas decimais
preco = 19.99
pi = 3.14159
temperatura = -5.5

Python lida muito bem com números grandes. Não há limite prático para inteiros:

numero_gigante = 2 ** 100
print(numero_gigante)
# 1267650600228229401496703205376

Operadores aritméticos

OperadorOperaçãoExemploResultado
+Soma5 + 38
-Subtração10 - 46
*Multiplicação6 * 318
/Divisão (sempre retorna float)7 / 23.5
//Divisão inteira7 // 23
%Módulo (resto da divisão)7 % 21
**Potenciação2 ** 38

Exemplos práticos

# Divisão normal vs inteira
print(10 / 3)   # 3.3333333333333335  (float)
print(10 // 3)  # 3                   (int, ignora decimal)

# Módulo — descobre se é par ou ímpar
print(10 % 2)   # 0 — par
print(7 % 2)    # 1 — ímpar

# Potenciação
print(2 ** 10)  # 1024

Dica: o módulo (%) é muito usado para verificar divisibilidade e ciclar entre valores.

Ordem de precedência

Python segue a mesma ordem da matemática:

  1. Parênteses ()
  2. Potenciação **
  3. Multiplicação, divisão e módulo * / // %
  4. Soma e subtração + -
resultado = 5 + 3 * 2       # 11 (multiplicação primeiro)
resultado = (5 + 3) * 2     # 16 (parênteses primeiro)
resultado = 2 ** 3 + 4      # 12 (potenciação primeiro)
resultado = 2 ** (3 + 4)    # 128

Quando estiver na dúvida, use parênteses. Deixa o código mais claro e evita surpresas.

Funções úteis para números

abs() — valor absoluto

print(abs(-10))   # 10
print(abs(10))    # 10

round() — arredondamento

print(round(3.14159))       # 3
print(round(3.14159, 2))    # 3.14 (2 casas decimais)
print(round(2.5))           # 2 (arredondamento bancário)

max() e min() — maior e menor

print(max(10, 3, 7, 25, 1))   # 25
print(min(10, 3, 7, 25, 1))   # 1

Módulo math

O Python vem com uma biblioteca de funções matemáticas mais avançadas. Para usá-la, importe o módulo math:

import math

print(math.sqrt(16))         # 4.0 (raiz quadrada)
print(math.ceil(4.2))        # 5 (arredonda para cima)
print(math.floor(4.8))       # 4 (arredonda para baixo)
print(math.pi)               # 3.141592653589793
print(math.pow(2, 10))       # 1024.0 (potência, equivalente a 2**10)

Erros comuns

Divisão por zero

print(10 / 0)  # ❌ ZeroDivisionError: division by zero

Causa: matemática básica — nenhum número pode ser dividido por zero. Solução: verifique se o divisor é zero antes de dividir.

Misturar int e float sem querer

# Isso funciona — Python converte automaticamente
print(3 + 2.5)   # 5.5 (float)

# Mas cuidado com comparações:
print(0.1 + 0.2 == 0.3)   # False?! 😱
print(0.1 + 0.2)           # 0.30000000000000004

Causa: números de ponto flutuante têm limitações de precisão. Solução: use round() para comparar floats ou use math.isclose():

print(round(0.1 + 0.2, 2) == 0.3)   # True

TypeError: can't multiply sequence by non-int

print("5" * "3")   # ❌ TypeError

Causa: você está tentando multiplicar string por string. Solução: converta para número: int("5") * int("3").

Esquecer de converter input

Lembre-se: input() sempre retorna string. Para fazer contas, converta:

# Errado
n1 = input("Primeiro número: ")
n2 = input("Segundo número: ")
print(n1 + n2)          # "1020" em vez de 30 ❌

# Certo
n1 = int(input("Primeiro número: "))
n2 = int(input("Segundo número: "))
print(n1 + n2)          # 30 ✅

Desafio rápido

Calcule a área de um círculo com raio 5 usando π = 3.14159:

raio = 5
area = 3.14159 * raio ** 2
print(f"Área do círculo: {area}")

Consegue modificar esse código para pedir o raio ao usuário? 🤔