Python: Matemática e Estatística
Última atualização: 2026-09-22
Computação numérica é uma habilidade fundamental de programação. A biblioteca padrão do Python fornece um conjunto completo de ferramentas — desde funções matemáticas básicas até análise estatística, desde aritmética decimal precisa até operações com frações. Esta lição ensina você a usar o módulo certo para o cenário certo.
1. math — Funções Matemáticas
import math
# Constantes comuns
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
# Arredondamento
print(math.ceil(3.14)) # 4 (teto)
print(math.floor(3.14)) # 3 (piso)
# Potências e logaritmos
print(math.pow(2, 10)) # 1024.0 (2 elevado a 10)
print(math.sqrt(16)) # 4.0 (raiz quadrada)
print(math.log(100, 10)) # 2.0 (log base 10)
# Trigonometria
print(math.sin(math.pi / 2)) # 1.0
print(math.cos(0)) # 1.0
print(math.radians(180)) # 3.14159... (graus para radianos)
▶ Exemplo: Cálculo de Distância (Dificuldade ⭐)
▶ ExperimenteSaída:
# Function defined successfully
2. statistics — Análise Estatística
import statistics
data = [12, 15, 18, 20, 22, 25, 30, 35, 40]
# Tendência central
print(statistics.mean(data)) # 24.11 (média)
print(statistics.median(data)) # 22 (mediana)
# print(statistics.mode(data)) # moda (error se não houver moda única)
# Dispersão
print(statistics.stdev(data)) # 9.32 (desvio padrão amostral)
print(statistics.variance(data)) # 86.86 (variância amostral)
▶ Exemplo: Análise de Notas (Dificuldade ⭐⭐)
▶ ExperimenteSaída:
=== Análise de Notas ===
\n=== Distribuição de Notas ===
▶ Exemplo: Estatísticas de Temperatura Urbana (Dificuldade ⭐⭐)
▶ ExperimenteSaída:
=== Estatísticas de Temperatura Urbana ===
São Paulo:
Média anual: 19.3C
Mediana: 19.0C
Desvio padrão: 3.3C
Faixa: 16.0C ~ 22.6C
Rio de Janeiro:
Média anual: 23.8C
Mediana: 24.0C
Desvio padrão: 2.5C
Faixa: 21.3C ~ 26.3C
3. decimal — Aritmética Decimal Precisa
from decimal import Decimal, getcontext
# Problema de precisão float
print(0.1 + 0.2) # 0.30000000000000004 ❌
# Cálculo preciso com Decimal
print(Decimal("0.1") + Decimal("0.2")) # 0.3 ✅
# Definir precisão
getcontext().prec = 4 # Precisão global de 4 dígitos
print(Decimal(1) / Decimal(3)) # 0.3333 (4 dígitos)
# Cálculos financeiros devem usar Decimal
price = Decimal("19.99")
quantity = Decimal("3")
tax_rate = Decimal("0.08")
total = price * quantity
tax = total * tax_rate
print(f"Total: {total:.2f}") # 59.97
print(f"Imposto: {tax:.2f}") # 4.80
print(f"Valor a pagar: {total + tax:.2f}") # 64.77
Decimal para cálculos financeiros, nunca float. O problema de precisão de 0.1 + 0.2 é fatal em finanças. Decimal sacrifica algum desempenho por aritmética decimal precisa.
4. fractions — Aritmética de Frações
from fractions import Fraction
# Criar frações
f1 = Fraction(1, 3) # 1/3
f2 = Fraction(2, 6) # Auto-reduz para 1/3
print(f1) # 1/3
print(f2) # 1/3
print(f1 == f2) # True
# Operações com frações
a = Fraction(1, 2)
b = Fraction(1, 3)
print(a + b) # 5/6
print(a * b) # 1/6
print(a / b) # 3/2
# Conversão entre frações e floats
print(float(Fraction(1, 3))) # 0.3333333333
print(Fraction(0.25).limit_denominator()) # 1/4
5. Casos de Uso Comuns
- math: Geometria (área/volume), trigonometria, operações logarítmicas.
- statistics: Análise de notas de exames, relatórios de dados, dados de experimentos científicos.
- decimal: Cálculo de preços em e-commerce, demonstrações financeiras, cálculo de impostos.
- fractions: Proporções de receitas, proporções de engenharia, aplicações educacionais.
❓ Perguntas Frequentes
math fornece funções mais especializadas (trigonometria, logaritmos, fatorial). Use funções embutidas quando elas forem suficientes.statistics.mean() é melhor que calcular a média manualmente?mean() é otimizado internamente (uma passagem para soma e contagem), tem melhor desempenho para grandes conjuntos de dados e lida com casos extremos como listas vazias.Fraction vs Decimal?Fraction quando precisar de aritmética racional exata (como exercícios de frações em software educacional). Use Decimal para cálculos decimais com precisão controlada (como finanças). Para casos simples, float é suficiente — 99% da programação diária não precisará de nenhum destes.📖 Resumo
math:ceil()/floor()arredondamento,sqrt()raiz quadrada, constantespi/e, funções trigonométricasstatistics:mean()média,median()mediana,stdev()desvio padrãoDecimal: Aritmética decimal precisa, adequada para finanças; crie a partir de strings (Decimal("0.1"))Fraction: Aritmética exata de frações, redução automática
📝 Exercícios
-
Básico (Dificuldade ⭐): Use o módulo
mathpara calcular a área e a circunferência de um círculo com raio 7. -
Intermediário (Dificuldade ⭐⭐): Dado
data = [23, 45, 67, 12, 34, 56, 78, 90, 11, 43], usestatisticspara calcular média, mediana e desvio padrão. Depois usemathpara determinar quais valores estão dentro de "média ± desvio padrão." -
Desafio (Dificuldade ⭐⭐⭐): Escreva um programa de "finalização de carrinho de compras." Produtos têm nomes, preços unitários (
Decimal) e quantidades. Após adicionar itens, calcule o total, imposto (8%) e desconto (subtraia 10 para cada 100), depois exiba o valor final. Requisito: Todos os cálculos monetários devem usarDecimal.