Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Carreira de Data Science + Listas, Dicionários, etc

Olá para todos. Fiquei com um questionamento simples aqui e gostaria, se possível, de uma opinião.

Estava resolvendo o exercício 9, sobre "Bibliotecas". Segue o enunciado completo:

  1. Você recebeu um desafio de calcular a raiz quadrada de uma lista de números, identificando quais resultaram em um número inteiro. A lista é a seguinte:
numeros = [2, 8, 15, 23, 91, 112, 256]

No final, informe quais números possuem raízes inteiras e seus respectivos valores.

Dica: use a comparação entre a divisão inteira (//) da raiz por 1 com o valor da raiz para verificar se o número é inteiro. Por exemplo:

num = 1.5
num2 = 2
print(f'{num} é inteiro? :', num // 1 == num)
print(f'{num2} é inteiro? :', num2 // 1 == num2)

Saída:

1.5 é inteiro? : False
2 é inteiro? : True

Eu havia resolvido da seguinte maneira:

# Importando a função de raiz quadrada:
from math import sqrt

# Criando a lista de radicandos:
numeros = [2, 8, 15, 23, 91, 112, 256]

# Calculando a raiz quadrada:
for radicandos in numeros:
  raiz = sqrt(radicandos)
  if raiz // 1 == raiz:
    print(f'O número {radicandos} possui raiz quadrada inteira no valor de {int(raiz)}')

E funcionou corretamente.

O gabarito apresenta o seguinte código:

from math import sqrt

numeros = [2, 8, 15, 23, 91, 112, 256]
# iniciando uma lista vazia para receber as raízes
raiz = []

# laço for para calcular cada raiz da lista de números e adicionar a lista raiz
for numero in numeros:
  raiz.append(sqrt(numero))

# laço for para ler a lista raiz e exibir um texto só quando a raiz for um valor inteiro 
for i in range(len(raiz)):
  # condição para testar se um número é inteiro (Ex: 2.5 // 1 = 2 ... 2 != 2.5)
  if raiz[i] // 1 == raiz[i]:
    print(f"O número {numeros[i]} possui raiz quadrada inteira igual a {int(raiz[i])}")

Minha dúvida não é sobre os códigos, mas sim na carreira de Data Sciente:

  • Para a carreira de Data Sciente, é importante criarmos listas, dicionários, etc, para resolver qualquer problema? (como no gabarito)
  • Ou em muitos casos uma resolução apenas "printada" (como a minha resolução) seria suficiente?

Desde já, muitíssimo obrigado! Abraços para todos!

2 respostas
solução!

Oi Bruno, tudo bem?

A carreira de Data Science envolve o uso de diversas estruturas de dados, como listas e dicionários, para resolver problemas e analisar dados. Portanto, é importante ter conhecimento e prática na manipulação dessas estruturas.

Quanto as atividades, ambas as abordagens estão corretas e funcionam para resolver o problema proposto (inclusive, parabéns pela sua solução, ela está bem direta e funcional). A diferença entre elas, está na forma como os resultados são apresentados. Na sua solução, os números com raízes inteiras são exibidos conforme são encontrados. Já no gabarito, todos os números e suas raízes são calculados primeiro e depois são exibidos apenas os que possuem raízes inteiras.

Em relação à sua pergunta sobre quando é suficiente apenas exibir os resultados, isso pode variar de acordo com o contexto e o objetivo do problema. Em alguns casos, apenas exibir os resultados pode ser suficiente. Porém, em outros casos, pode ser necessário armazenar os resultados em estruturas de dados para realizar outras operações ou análises posteriormente.

Espero ter esclarecido suas dúvidas!

Se tiver mais alguma pergunta, é só compartilhar no fórum.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muitíssimo obrigado!! Respondeu a todas as minhas dúvidas e mais ainda. Obrigado!