Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

[Dúvida] Exercicio 10 - Duvida

Apesar do exercicio 10 pedir a coleta em lista, o que ainda tentarei, primeiramente me veio a ideia de utilizar dicionario. Segue meu código:

temperaturas = {1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0, 11:0, 12:0 }
meses_acima = []
meses_abaixo_igual = []

for mes in range(12):
  temperatura = float(input(f'Digite a temperatura média do mês {mes + 1}: '))
  temperaturas[mes + 1] = temperatura

media = sum(temperaturas.values()) / len(temperaturas)
print(f'A média anual é de {media}')

for mes, temp in temperaturas.items():
  if temp > media:
    meses_acima.append(mes)
  else:
    meses_abaixo_igual.append(mes)

print(f'Os meses acima são: {meses_acima}')
print(f'Os meses abaixo são: {meses_abaixo_igual}')

Porém, tive dificuldade de conseguir traduzir os meses de números para palavras nas listas meses_abaixo_igual e meses_acima. Existe uma forma simplificada para isso?

1 resposta

Olá, estudante! Como vai?

Sim, existe uma forma de relacionar os números com os nomes dos meses. Você pode criar uma lista ou dicionário com os nomes dos meses e, quando for exibir o resultado, usar esse mapeamento em vez de mostrar apenas os números. Assim:

temperaturas = {1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0, 11:0, 12:0}
meses = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho",
         "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]

meses_acima = []
meses_abaixo_igual = []

for mes in range(12):
    temperatura = float(input(f'Digite a temperatura média do mês {meses[mes]}: '))
    temperaturas[mes + 1] = temperatura

media = sum(temperaturas.values()) / len(temperaturas)
print(f'A média anual é de {media:.2f}')

for mes, temp in temperaturas.items():
    if temp > media:
        meses_acima.append(meses[mes - 1])
    else:
        meses_abaixo_igual.append(meses[mes - 1])

print(f'Meses acima da média: {meses_acima}')
print(f'Meses abaixo ou iguais à média: {meses_abaixo_igual}')

Desse jeito, a lista meses guarda os nomes em ordem. E como a sua chave começa em 1 e listas começam no índice 0, eu usei mes - 1 para acessar o nome correto.

Resultado:

Digite a temperatura média do mês Janeiro: 34
Digite a temperatura média do mês Fevereiro: 40
Digite a temperatura média do mês Março: 25
Digite a temperatura média do mês Abril: 42
Digite a temperatura média do mês Maio: 32
Digite a temperatura média do mês Junho: 27
Digite a temperatura média do mês Julho: 20
Digite a temperatura média do mês Agosto: 32
Digite a temperatura média do mês Setembro: 28
Digite a temperatura média do mês Outubro: 21
Digite a temperatura média do mês Novembro: 30
Digite a temperatura média do mês Dezembro: 32
A média anual é de 30.25
Meses acima da média: ['Janeiro', 'Fevereiro', 'Abril', 'Maio', 'Agosto', 'Dezembro']
Meses abaixo ou iguais à média: ['Março', 'Junho', 'Julho', 'Setembro', 'Outubro', 'Novembro']

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado