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

[Projeto] 13 Desafio: hora da prática parte 2

Questão 10

temperatura_mes = []
meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']

for mes in meses:
  while True:
    temperatura = float(input(f'Digite a temperatura média de {mes}: '))
    if temperatura >= -50 and temperatura <= 65:
      temperatura_mes.append(temperatura)
      break

media_anual = sum(temperatura_mes)/len(meses)

print()
print(f'Média anual:{media_anual}°C')
print()

for i in range(len(temperatura_mes)):
  if temperatura_mes[i] > media_anual:
    print(f'A temperatura de {temperatura_mes[i]}°C aconteceu em {meses[i]} Acima da média Anual')

Questão 11

vendas = {
  'Produto A': 300,
  'Produto B': 80,
  'Produto C': 60,
  'Produto D': 200,
  'Produto E': 250,
  'Produto F': 30
}

total_vendas = sum(vendas.values())
produto_mais_vendido = max(vendas, key=vendas.get)

print(f'Total de vendas: {total_vendas}')
print(f'Produto mais vendido: {produto_mais_vendido} com {vendas[produto_mais_vendido]} unidades vendidas')

Questão 12

tabela_votos = {
  'Design 1': 1334,
  'Design 2': 982,
  'Design 3': 1751,
  'Design 4': 210,
  'Design 5': 1811
}

total_votos = sum(tabela_votos.values())
design_vencedor = max(tabela_votos, key=tabela_votos.get)
porcentagem_votos = (tabela_votos[design_vencedor] / total_votos) * 100

print(f'Design vencedor: {design_vencedor}')
print(f'Porcentagem de votos recebidos: {porcentagem_votos:.2f}%')

Questão 13

lista_salarios_setor = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]

abonos = {}
qtde_abonos_minimo = 0

for salario in lista_salarios_setor:
  if salario * 0.10 < 200:
    abonos[salario] = 200
    qtde_abonos_minimo +=1
  else:
    abonos[salario] = round(salario * 0.10, 2)
    
print(abonos)

print(f'Total de gastos com o abono: {sum(abonos.values())}')
print(f'Quantidade de funcionários que receberam o abono mínimo: {qtde_abonos_minimo}')
print(f'Maior valor de abono fornecido: {max(abonos.values()):.2f}')

Questão 14

diversidade_biologica = {
    'Área Norte': [2819, 7236],
    'Área Leste': [1440, 9492],
    'Área Sul': [5969, 7496],
    'Área Oeste': [14446, 49688],
    'Área Centro': [22558, 45148]
}

media_especies_por_area = {}

total_areas = len(diversidade_biologica)

for area, especies in diversidade_biologica.items():
    total_especies = sum(especies)
    media_especies = total_especies / len(especies)  #Media por area
    
    media_especies_por_area[area] = media_especies

print("Médias por área:")
print(media_especies_por_area)
print()

area_maior_diversidade = max(media_especies_por_area, key=media_especies_por_area.get)

print(f'Área com a maior diversidade biológica: {area_maior_diversidade}')

Questão 15

idades_por_area ={
    '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_funcionarios = sum(len(funcionarios) for funcionarios in idades_por_area.values())
idade_media_geral = sum(idade for funcionarios in idades_por_area.values() for idade in funcionarios) / total_funcionarios 
idade_media_por_setor = {}

for setor, idades in idades_por_area.items():
    media_idade = sum(idades) / len(idades)
    idade_media_por_setor[setor] = media_idade

qtde_acima_idade_media = sum(idade > idade_media_geral for idades in idades_por_area.values() for idade in idades)

print("Médias de idade por setor:")
print(idade_media_por_setor)
print()

print(f'Idade média geral entre todos os setores: {idade_media_geral:.2f}')

print(f'Quantidade de pessoas acima da idade média geral: {qtde_acima_idade_media}')

2 respostas
solução!

Olá, Marcelo! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o for para percorrer listas com Python, utilizou muito bem o dicionário para organizar dados de vendas e votos e ainda compreendeu a importância da função de agregação para calcular médias e totais em diferentes cenários.

Uma dica interessante para o futuro é aplicar a função min() para identificar rapidamente o menor valor em uma coleção. Assim:

menor_venda = min(vendas.values())
print(f'O menor número de vendas foi {menor_venda}')

Isso faz a identificação do menor valor de forma simples e direta.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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

Valeu as dicas Daniel usar o Min Max direto na coleção com values realmente deixa bem conciso.