Salve pessoal, resolvi compartilhar aqui algumas das resoluções e fico a disposição para sugestões de melhorias.
Achei os exercícios da seção "Aplicando a projetos" muito construtivos, pois mostram como não precisamos reinventar a roda para resolver problemas matemáticos ou de sorteio. Separei as minhas soluções abaixo com alguns comentários sobre as escolhas que fiz em cada código.
Fiquem à vontade para analisar e sugerir outras abordagens!
- Sorteio de pessoa seguidora
Para esse desafio, a função randint() da biblioteca random é a mais direta, pois ela inclui tanto o limite inferior quanto o superior no sorteio.
import random
participantes = int(input("Digite o número de participantes do sorteio: "))
# Sorteia um número de 1 até o total de participantes inserido
numero_sorteado = random.randint(1, participantes)
print(f"\nO número sorteado para ganhar o prêmio foi: {numero_sorteado}")
- Gerador de Token de Acesso (Números Pares)
Gerar tokens é uma tarefa muito comum no desenvolvimento Back-end. Para garantir que o token seja sempre par entre 1000 e 9998, usei a função randrange() passando o parâmetro step como 2. Assim, ele pula de dois em dois, ignorando os ímpares.
import random
nome = input("Digite o seu nome: ")
# randrange(início, fim, salto) - O fim é exclusivo, então usamos 10000 para incluir até o 9998
token = random.randrange(1000, 10000, 2)
print(f"\nOlá, {nome}, o seu token de acesso é {token}! Seja bem-vindo(a)!")
- Salada de Frutas Surpresa
Como o desafio pede para escolher 3 frutas diferentes, a função random.sample() é perfeita. Ao contrário do choice() ou do choices(), o sample() pega itens únicos, garantindo que não teremos duas frutas iguais sorteadas na mesma salada.
import random
frutas = ["maçã", "banana", "uva", "pêra", "manga", "coco",
"melancia", "mamão", "laranja", "abacaxi", "kiwi", "ameixa"]
# Escolhe 3 itens distintos da lista
salada_surpresa = random.sample(frutas, 3)
print("A sua salada de frutas surpresa contém:")
print(f"- {salada_surpresa[0].capitalize()}")
print(f"- {salada_surpresa[1].capitalize()}")
print(f"- {salada_surpresa[2].capitalize()}")
- Validador de Raiz Quadrada Inteira
Aqui, apliquei a dica passada na atividade usando a divisão inteira (//) para comparar o resultado. Mas fica uma dica extra: o Python também possui o método nativo .is_integer() para floats, que faz exatamente essa verificação de forma bem limpa!
import math
numeros = [2, 8, 15, 23, 91, 112, 256]
print("Analisando as raízes quadradas da lista:\n")
for num in numeros:
raiz = math.sqrt(num)
# Verifica se a raiz tem casas decimais iguais a zero
if raiz // 1 == raiz:
print(f"O número {num} possui raiz quadrada inteira: {int(raiz)}")
- Orçamento de Grama para Jardim Circular
Para evitar números mágicos e arredondamentos manuais do pi (como 3.14), chamei a constante exata math.pi. Em seguida, usei math.pow() para elevar o raio ao quadrado.
import math
raio = float(input("Digite o raio da área circular do jardim (em metros): "))
preco_metro_quadrado = 25.00
# Cálculo da área: A = π * r²
area_jardim = math.pi * math.pow(raio, 2)
# Cálculo do preço total
valor_total = area_jardim * preco_metro_quadrado
print(f"\nÁrea total do jardim: {area_jardim:.2f} m²")
print(f"Valor a ser pago pela grama: R$ {valor_total:.2f}")
Espero que esses códigos ajudem quem estiver com dificuldade para implementar os métodos do math ou do random. Bons estudos para todos!