1
resposta

Resolução do desafio: hora da prática V - Estruturas de dados - Momento dos projetos exs.: 13 ao 15

https://cursos.alura.com.br/forum/curso-python-data-science-primeiros-passos/exercicio-desafio-hora-da-pratica/123737/novo

# 13
salarios = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]
abonos = {}
i = 0

while i < len(salarios):
    abono = salarios[i] * 0.10
    if abono < 200:
        abono = 200
    abonos[salarios[i]] = abono
    i += 1

gastosAbono = sum(abonos.values())

abonoMinimo = list(abonos.values()).count(200)

maiorAbono = max(abonos.values())

print(f'Total de gastos com abono: R$ {round(gastosAbono, 2)}')
print(f'Total de colaboradores que receberam abono mínimo: {abonoMinimo}')
print(f'Maior abono pago foi: R$ {round(maiorAbono, 2)}')

# mostrar salario e abono
valores = list(abonos.keys())
j = 0
while j < len(valores):
    salario = valores[j]
    abono = abonos[salario]
    print(f'Salario: R$ {round(salario, 2)} - Abono: R$ {round(abono, 2)}')
    j += 1

# Total de gastos com abono: R$ 6087.8
# Total de colaboradores que receberam abono mínimo: 2
# Maior abono pago foi: R$ 790.3
# Salario: R$ 1172 - Abono: R$ 200
# Salario: R$ 1644 - Abono: R$ 200
# Salario: R$ 2617 - Abono: R$ 261.7
# Salario: R$ 5130 - Abono: R$ 513.0
# Salario: R$ 5532 - Abono: R$ 553.2
# Salario: R$ 6341 - Abono: R$ 634.1
# Salario: R$ 6650 - Abono: R$ 665.0
# Salario: R$ 7238 - Abono: R$ 723.8
# Salario: R$ 7685 - Abono: R$ 768.5
# Salario: R$ 7782 - Abono: R$ 778.2
# Salario: R$ 7903 - Abono: R$ 790.3
# 14
diversidade = {
    'Área Norte': [2819, 7236],
    'Área Leste': [1440, 9492],
    'Área Sul': [5969, 7496],
    'Área Oeste': [14446, 49688],
    'Área Centro': [22558, 45148]
}

mediaEspecies = {}          # dicionário p/ guardar média
maiorTotal = 0              # guardar maior total
maisDiversa = ''            # guardar nome com maior total

for area, especies in diversidade.items():
    totalEspecies = sum(especies)               # total de espécies
    media = totalEspecies / len(especies)       # média de espécies
    mediaEspecies[area] = media                 # guardar no dicionário

    if totalEspecies > maiorTotal:
        maiorTotal = totalEspecies              # atualizar maior total
        maisDiversa = area                      # atualizar nome da área 

print('\nMédia por área:')
for area in mediaEspecies:
    print(f'{area}: {round(mediaEspecies[area], 2)} espécies.')

print('\nMaior diversidade:')
print(f'Área: {maisDiversa}')
print(f'Total: {maiorTotal}')
  
# Média por área:
# Área Norte: 5027.5 espécies.
# Área Leste: 5466.0 espécies.
# Área Sul: 6732.5 espécies.
# Área Oeste: 32067.0 espécies.
# Área Centro: 33853.0 espécies.

# Maior diversidade:
# Área: Área Centro
# Total: 67706
# 15
idadeSetores = {
    '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]
 }

total = 0
qtdeIdades = 0
listaIdades = []
acimaMedia = 0

print('\nMédia de idades por setor:')
for setor, idades in idadeSetores.items():
    totalSetor = sum(idades)
    mediaSetor = totalSetor / len(idades)

    print(f'{setor}: {round(mediaSetor, 2)} anos')


for todasIdades in idadeSetores.values():
    total += sum(todasIdades)
    qtdeIdades += len(todasIdades)
    listaIdades.append(todasIdades)

mediaGeral = total / qtdeIdades
print(f'\nMédia geral: {round(mediaGeral, 1)} anos')

for sublista in listaIdades:
    for idades in sublista:
        if idades > mediaGeral:
            acimaMedia += 1

print(f'\nPessoas com idade acima da média: {acimaMedia}')

# Média de idades por setor:
# Setor A: 39.9 anos
# Setor B: 42.3 anos
# Setor C: 35.8 anos
# Setor D: 36.5 anos

# Média geral: 38.6 anos

# Pessoas com idade acima da média: 18
1 resposta

Oi! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código está bem estruturado e mostra que você compreendeu a lógica por trás das estruturas de repetição e dicionários em Python.

Uma dica interessante para o futuro é usar a função enumerate() para acessar tanto o índice quanto o valor em uma lista durante um loop. Veja este exemplo:


salarios = [1172, 1644, 2617]

for i, salario in enumerate(salarios):
    print(f"Indice: {i} - Salario: {salario}")

Esse código usa enumerate() para evitar variáveis como i = 0 e simplificar a leitura dos loops.

Qualquer dúvida que surgir, compartilhe no fórum.

Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!