Da trilha de Python Este conceito ainda não saiu como card do dia. ir para o card de hoje

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

  • int em Python tem precisão arbitrária: cresce conforme a necessidade, sem overflow.
  • float tem precisão finita e pode gerar surpresas como 0.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 satisfazem a == (a // b) * b + (a % b).
  • Comparações encadeadas como 0 <= x < 10 são mais legíveis e avaliam o termo do meio uma única vez.
numeros_operadores.py
# 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")

Exercícios

  1. 1
    Fácil

    Separando quociente e resto

    Escreva um programa que leia dois números inteiros a e b (com b != 0) e imprima o quociente inteiro e o resto da divisão de a por b, no formato Quociente: X, Resto: Y.

    Resolver
  2. 2
    Médio

    Somando com Decimal

    Leia três preços como strings, converta para Decimal e some-os. Imprima o total com duas casas decimais. Em seguida, compare com a soma usando float e mostre se os resultados são iguais.

    Resolver
  3. 3
    Desafio

    Classificando notas com comparações encadeadas

    Leia uma nota (float entre 0 e 10) e classifique-a usando comparações encadeadas: A para 9 <= nota <= 10, B para 7 <= nota < 9, C para 5 <= nota < 7, D para 3 <= nota < 5, E para 0 <= nota < 3. Notas fora do intervalo devem imprimir Nota inválida. Imprima também se a nota é exatamente 10 com a mensagem Nota máxima!.

    Resolver

Continue estudando