Olá, Flávio! Tudo bem?
Parabéns pela resolução dos desafios! É muito bom ver como você aplicou as bibliotecas nativas do Python (math e random) para resolver problemas que vão desde cálculos geométricos até a geração de tokens de segurança. Essa habilidade de utilizar ferramentas prontas para otimizar o desenvolvimento é essencial para um Analista de TI.
Analisando seus códigos, aqui estão alguns pontos de destaque e sugestões de melhoria técnica:
1. Cálculo de Raiz Quadrada e Inteiros
Sua lógica para verificar se um número é inteiro usando num // 1 == num é criativa! No entanto, conforme você avança nos estudos de Python para Dados, verá que o uso de loops torna o código muito mais escalonável. Imagine se a lista tivesse 100 números em vez de 7.
Dica de Refatoração:
from math import sqrt
numeros = [2, 8, 15, 23, 91, 112, 256]
for n in numeros:
raiz = sqrt(n)
# O método .is_integer() do Python é uma alternativa elegante
print(f"A raiz de {n} ({raiz:.2f}) é inteira? {raiz.is_integer()}")
2. Sorteio de Frutas e Geração de Tokens
Você utilizou o random.sample corretamente para garantir que os elementos selecionados sejam únicos no sorteio. No desafio do Token, você criou uma lista de números pares de forma manual.
Otimização com range:
Você pode simplificar a criação da lista de números pares usando o terceiro argumento do range (o passo):
# range(início, fim, passo)
lista = list(range(1000, 10000, 2))
token = sample(lista, 1)[0] # Pegando o valor fora da lista retornada
3. Cálculo da Área do Gramado
O uso de pi e pow da biblioteca math garante a precisão necessária para cálculos de engenharia ou paisagismo. O detalhe do :.2f no print foi excelente para formatar o valor monetário.
Atenção apenas a um detalhe conceitual: No seu print, você colocou "R$ ... M²". Como o resultado final é um preço (dinheiro), o ideal seria remover o "M²" do final ou separar as informações, por exemplo: "A área é de {area:.2f} M² e o valor total é R${preco * area:.2f}".
Por que usar bibliotecas?
Ao importar funções como sqrt ou pi, você está seguindo o princípio de não reinventar a roda. Bibliotecas padrão do Python são escritas em C e altamente otimizadas para performance.
math: Essencial para operações matemáticas complexas.random: Fundamental para simulações, testes A/B e segurança (tokens).
Continue praticando essa modularização do código! Você está no caminho certo para dominar as estruturas de dados e funções.
Espero que possa ter lhe ajudado!