1
resposta

[Projeto] Desafio: hora da prática

from math import sqrt
numeros = [2, 8, 15, 23, 91, 112, 256]

num1 = sqrt(numeros[0])
num2 = sqrt(numeros[1])
num3 = sqrt(numeros[2])
num4 = sqrt(numeros[3])
num5 = sqrt(numeros[4])
num6 = sqrt(numeros[5])
num7 = sqrt(numeros[6])

print(f"{num1} é inteiro? :", num1 // 1 == num1)
print(f"{num2} é inteiro? :", num2 // 1 == num2)
print(f"{num3} é inteiro? :", num3 // 1 == num3)
print(f"{num4} é inteiro? :", num4 // 1 == num4)
print(f"{num5} é inteiro? :", num5 // 1 == num5)
print(f"{num6} é inteiro? :", num6 // 1 == num6)
print(f"{num7} é inteiro? :", num7 // 1 == num7)
from random import sample

frutas = ["maçã", "banana", "uva", "pêra", 
          "manga", "coco", "melancia", "mamão",
          "laranja", "abacaxi", "kiwi", "ameixa"]

print(f"Suas frutas selecionadas são {sample(frutas, 3)}")
nome = input("Digite seu nome: ")
from random import sample

lista = []

for numeros in range(1000, 9999):
  if numeros % 2 == 0:
    lista.append(numeros)



print(f"Olá, {nome}, o seu token de acesso é {sample(lista, 1)}! Seja bem-vindo(a)")
from math import pi, pow

preco = 25

raio = float(input("Digite o tamanho do raio: "))

area = pi*pow(raio, 2)

print(f"O valor total para o seu gramado é de R${preco * area:.2f} M²")
1 resposta

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!