Escreva um programa que:
- lê duas notas de vários alunos e armazena tais notas em um dicionário, onde a chave é o nome do aluno. A entrada de dados deve terminar quando for lida uma string vazia como nome.
- Escreva uma função que retorna a média do aluno, dado seu nome.
- Escreva um programa que exiba o nome é a média do aluno de maior média.
Passo 1
Fala aí, maninho! Bora começar perguntando o nome do aluno que a gente quer inserir as notas. Mas repara que tá dizendo “vários” alunos… É uma repetição indeterminada, e só nos resta usar o while pra fazer.
Mas a gente só precisa perguntar até a pessoa apertar enter sem digitar nome nenhum. Nesse caso, a gente sai do loop. Então bora programar essa parada!
Criamos uma variável chamada “notas” pra ir armazenando os nomes e as notas dos alunos. Agora a gente precisa criar a função pra calcular a média. Mas cê reparou que a gente tá guardando uma lista com as notas dentro do dicionário, né?!
Não tem problema nenhum em fazer isso. Na verdade, é a única forma de guardar mais de um valor em uma mesma key.
Passo 2
Show! Agora, bora criar a função. Cara, pra essa função eu vou te contar um segredo que seu professor provavelmente não te contou: existe uma função chamada sum() que retorna a soma de todos os elementos de uma lista. E a média é a soma de todos os elementos dividido pelo número de elementos.
Assim, essa mini função de uma linha é capaz de retornar pra gente a média do aluno que a gente passar por parâmetro. Mas a gente tem que passar também o dicionário “notas”, hein! Beleza… Agora que a nossa função tá pronta, vamos usar ela pro terceiro passo: verificar qual aluno tem a maior nota.
Passo 3
Pra isso, a gente vai ter que iterar por todos os elementos. Vamos criar, também, uma lista pra armazenar a maior nota juntamente com o nome do indivíduo. Essa lista vai ser atualizada a cada loop.
A gente passa por todos os elementos, e já calcula a média. Se a lista existir (não estiver vazia), a gente confere se o novo aluno supera o que já estava guardado lá. Mas, se a lista não existir, a gente salva nela o item e a média! Só falta a gente exibir esse resultado pro usuário...
Passo 4
E pra exibir pro usuário, a gente pode, depois do loop, chamar a função print(), dizendo o nome do doido e a média dele. Tipo assim:
Aí a gente consegue exibir, o nome e a média do cara (ou da mina) que ficou com a maior nota. E, com isso, a gente finaliza o exercício! Te vejo no próximo, doido!