Python Fundamentos Básico
Números e operadores
Em Python, os números são objetos e vêm em tipos como int, float e Decimal. O tipo int tem precisão arbitrária: você pode somar e multiplicar inteiros enormes sem se preocupar com overflow, algo raro em linguagens de baixo nível. Já float segue o padrão IEEE 754 de 64 bits e, por isso, não representa exatamente muitos números decimais.
Para cálculos financeiros ou que exigem exatidão decimal, use decimal.Decimal. Ele armazena números decimais com precisão configurável, evitando erros como 0.1 + 0.2 != 0.3. A escolha do tipo certo evita bugs sutis.
Os operadores // (divisão inteira) e % (módulo) trabalham juntos: para inteiros positivos, a == (a // b) * b + (a % b). Eles são úteis para separar quociente e resto, converter unidades e verificar paridade.
Python também permite comparações encadeadas, como 0 <= x < 10, que equivalem a 0 <= x and x < 10, mas avaliam x apenas uma vez. Isso deixa o código mais legível e evita repetições.
Pontos-chave
intem Python tem precisão arbitrária: cresce conforme a necessidade, sem overflow.floattem precisão finita e pode gerar surpresas como0.1 + 0.2 == 0.30000000000000004.Decimalé ideal para valores monetários e cálculos que exigem exatidão decimal.//retorna o quociente inteiro e%retorna o resto; juntos satisfazema == (a // b) * b + (a % b).- Comparações encadeadas como
0 <= x < 10são mais legíveis e avaliam o termo do meio uma única vez.
# Demonstração de números e operadores em Python
from decimal import Decimal
# int de precisão arbitrária
fatorial_30 = 1
for i in range(1, 31):
fatorial_30 *= i
print("30! =", fatorial_30)
# float tem precisão finita
soma_float = 0.1 + 0.2
print("0.1 + 0.2 =", soma_float)
print("É igual a 0.3?", soma_float == 0.3)
# Decimal evita o problema
soma_decimal = Decimal("0.1") + Decimal("0.2")
print("Decimal: 0.1 + 0.2 =", soma_decimal)
print("É igual a Decimal('0.3')?", soma_decimal == Decimal("0.3"))
# // e %
total_segundos = 3725
horas = total_segundos // 3600
resto = total_segundos % 3600
minutos = resto // 60
segundos = resto % 60
print(f"{total_segundos}s = {horas}h {minutos}min {segundos}s")
# Comparações encadeadas
x = 7
if 0 <= x < 10:
print(f"{x} está entre 0 e 9")