1
resposta

Desafio: hora da prática (Momento dos Projetos - cont)

# Questão 12: Uma pesquisa de mercado foi feita para decidir qual design de uma marca infantil mais agrada ...
# Dicionário com os votos de cada design
votos = {
    "Design 1": 1334,
    "Design 2": 982,
    "Design 3": 1751,
    "Design 4": 210,
    "Design 5": 1811
}

# Calculando o total de votos
total_votos = sum(votos.values())

# Encontrando o design vencedor
design_vencedor = max(votos, key=votos.get)

# Quantidade de votos do vencedor
votos_vencedor = votos[design_vencedor]

# Calculando a porcentagem
porcentagem = (votos_vencedor / total_votos) * 100

# Exibindo os resultados
print("=== RESULTADO DA PESQUISA ===\n")

print(f"Design vencedor: {design_vencedor}")
print(f"Quantidade de votos: {votos_vencedor}")
print(f"Porcentagem de votos: {porcentagem:.2f}%")
#Questão 13: Os funcionários de um setor da empresa que você trabalha vão receber um abono...
# Lista de salários
salarios = [1172, 1644, 2617, 5130, 5532,
            6341, 6650, 7238, 7685, 7782, 7903]

# Dicionário para armazenar salário e abono
abonos = {}

# Variáveis auxiliares
total_gastos = 0
abono_minimo = 0
maior_abono = 0

# Calculando os abonos
for salario in salarios:
    
    # Cálculo de 10% do salário
    abono = salario * 0.10

    # Garantindo o valor mínimo de 200
    if abono < 200:
        abono = 200
        abono_minimo += 1

    # Adicionando ao dicionário
    abonos[salario] = abono

    # Somando os gastos totais
    total_gastos += abono

    # Verificando o maior abono
    if abono > maior_abono:
        maior_abono = abono

# Exibindo o dicionário
print("Dicionário de abonos:")
print(abonos)

# Exibindo os resultados
print("\n=== RELATÓRIO FINANCEIRO ===")
print(f"Total de gastos com abonos: R$ {total_gastos:.2f}")
print(f"Funcionários que receberam o abono mínimo: {abono_minimo}")
print(f"Maior valor de abono concedido: R$ {maior_abono:.2f}")
# Questão 14: Uma equipe de cientistas de dados está estudando a diversidade biológica em uma...
# Dicionário com as áreas e quantidades de espécies
areas = {
    'Área Norte': [2819, 7236],
    'Área Leste': [1440, 9492],
    'Área Sul': [5969, 7496],
    'Área Oeste': [14446, 49688],
    'Área Centro': [22558, 45148]
}

# Dicionário para armazenar as médias
medias = {}

# Variáveis para identificar a área com maior diversidade
maior_diversidade = 0
area_maior_diversidade = ""

# Calculando as médias
for area, especies in areas.items():
    
    media = sum(especies) / len(especies)
    medias[area] = media

    # Soma total de espécies da área
    total_especies = sum(especies)

    # Verificando a maior diversidade biológica
    if total_especies > maior_diversidade:
        maior_diversidade = total_especies
        area_maior_diversidade = area

# Exibindo as médias
print("=== MÉDIA DE ESPÉCIES POR ÁREA ===")
for area, media in medias.items():
    print(f"{area}: {media:.2f} espécies")

# Exibindo a área com maior diversidade
print("\n=== ÁREA COM MAIOR DIVERSIDADE BIOLÓGICA ===")
print(f"{area_maior_diversidade} com {maior_diversidade} espécies")
# Questão 15: O setor de RH da sua empresa te pediu uma ajuda para analisar as idades dos funcionários...
# Dicionário com as idades dos funcionários
setores = {
    'Setor A': [22, 26, 30, 30, 35, 38, 40, 56, 57, 65],
    'Setor B': [22, 24, 26, 33, 41, 49, 50, 54, 60, 64],
    'Setor C': [23, 26, 26, 29, 34, 35, 36, 41, 52, 56],
    'Setor D': [19, 20, 25, 27, 34, 39, 42, 44, 50, 65]
}

# Dicionário para armazenar as médias dos setores
medias_setores = {}

# Lista para armazenar todas as idades
todas_idades = []

# Calculando a média de cada setor
for setor, idades in setores.items():
    media = sum(idades) / len(idades)
    medias_setores[setor] = media
    
    # Adicionando as idades na lista geral
    todas_idades.extend(idades)

# Calculando a média geral
media_geral = sum(todas_idades) / len(todas_idades)

# Contando quantas pessoas estão acima da média geral
acima_media = 0

for idade in todas_idades:
    if idade > media_geral:
        acima_media += 1

# Exibindo as médias dos setores
print("=== MÉDIA DE IDADE POR SETOR ===")
for setor, media in medias_setores.items():
    print(f"{setor}: {media:.2f} anos")

# Exibindo média geral
print(f"\nMédia geral das idades: {media_geral:.2f} anos")

# Exibindo quantidade de pessoas acima da média
print(f"Pessoas acima da média geral: {acima_media}")
1 resposta

Olá! Tudo bem?

É excelente ver você concluindo esta trilha de desafios! Você demonstrou uma habilidade sólida em utilizar Dicionários e Listas para resolver problemas de lógica que simulam situações reais de mercado, finanças e biologia.

Aqui estão os pontos de destaque técnico das suas resoluções finais:

Análise das Questões

  • Questão 12 (Pesquisa de Mercado):

  • Você utilizou sum(votos.values()) para obter o denominador total de forma rápida.

  • O uso de max(votos, key=votos.get) é a maneira mais eficiente em Python de encontrar a chave associada ao maior valor em um dicionário.

  • Questão 13 (Cálculo de Abonos):

  • A lógica para garantir o abono mínimo de 200 foi implementada corretamente com uma estrutura condicional if.

  • Armazenar os resultados em um novo dicionário (abonos) vinculando o salário ao benefício é uma excelente prática para manter a rastreabilidade dos dados.

  • Questão 14 (Diversidade Biológica):

  • Nesta questão, você lidou com um dicionário onde os valores são listas (areas).

  • A iteração usando areas.items() permitiu calcular a média de cada área e, simultaneamente, identificar o valor máximo global, mostrando eficiência no processamento.

  • Questão 15 (Análise de RH):

  • O uso do método .extend() foi o grande diferencial aqui. Ao contrário do .append(), o .extend() adiciona todos os elementos de uma lista a outra, facilitando a criação da lista todas_idades para o cálculo da média geral.

  • A estrutura final para contar pessoas acima da média demonstra um bom domínio de filtros lógicos.


Dica de Carreira em Data Science

Nestas últimas questões, você começou a trabalhar com agregação de dados (médias por setor, totais por área). Na Ciência de Dados, esse processo é conhecido como Split-Apply-Combine:

  1. Split: Você divide os dados (ex: por Setor).
  2. Apply: Você aplica uma função (ex: sum() ou media).
  3. Combine: Você reúne os resultados em uma nova estrutura (ex: seu dicionário de medias_setores).

Você está no caminho certo! Dominar essas estruturas nativas do Python é o que garantirá que você entenda exatamente o que bibliotecas mais avançadas, como o Pandas, fazem de forma automatizada.

Parabéns por toda a dedicação e pelos 5.7k de XP! Continue praticando e compartilhando seus projetos.

Espero que possa ter lhe ajudado!

Na Questão 14, se uma nova área fosse descoberta com uma lista de 10 espécies em vez de 2, seu código atual precisaria de alguma alteração para calcular a média corretamente?