Exercícios Resolvidos de Tuplas e dicionários

Ver Teoria

Enunciado

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!

Resposta