Leia também:
- Apostila de Python em PDF
- Certificado do Curso de Python (para quem deseja trabalhar, ganhar dinheiro e viver de programação)
Exercício de Python
Eles querem que você crie um script que exiba o seguinte menu:
0. Sair
1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)
2. Inserir aluno e nota
3. Alterar a nota de um aluno
4. Consultar nota de um aluno específico
5. Apagar um aluno da lista
6. Dar a média da turma
Onde a professora que vai fornecer o nome e nota dos alunos. Quantos ela quiser. Quantas vezes quiser.
Implemente esse script usando um dicionário.
Conhecimentos para resolver essa questão:
O que é ? Para que serve? Como e quando se usa ?
Como exibir items, valores e chaves de um dicionário
Como usar os métodos get() e setdefault()
Adicionar, Alterar e Remover items de um dicionário
Solução comentada
Primeiro, criamos um dicionário de nome alunos e depois chamamos a função que exibe o menu.
- menu()
Bem, vamos lá.Primeiro, temos que criar a lógica que vai ficar exibindo esse menu o tempo inteiro.
Ele é exibido enquanto o valor da variável continuar for diferente de 0.
Se for, encerra o menu() e acaba o laço e encerra o programa.
Se for outro valor diferente, vai cair em vários testes condicionais para saber que função correta deve ser chamada.
- exibir()
Nessa função, vamos simplesmente exibir o dicionário, de maneira bonita e padronizada, os nomes e notas dos alunos.Para isso, usamos uma variável temporária de nome nome, que vai receber cada uma das chaves (keys), do dicionário de alunos.
Então, imprime o nome e a nota de cada aluno.
- inserir()
Antes de inserir, usamos o método get() para saber se já existe uma key com aquele nome que estamos querendo inserir.Se tiver o aluno, o método retorna algum valor, cai no IF e avisamos que não pode inserir.
Se não estiver o aluno, cai no ELSE e criamos um novo item no nosso dicionário.
- alterar()
Antes de alterar um determinado item, temos que nos certificar que ele existe no dicionário.Para isso, usamos o operador in.
Se ele existir na lista de keys, faz a alteração.
Se não não faz nada, só exibe uma mensagem avisando isso.
- consultar()
Idem a lógica anterior.Se existir o item, exibe.
Senão, avisa.
- apagar()
Idem.Primeiro, verificamos se o item existe, consultando sua chave.
Se tiver, usamos o método pop() para retirar o item da lista.
- media()
Pegamos uma variável e inicializamos com valor 0.Depois, somamos todos os valores nessa variável e dividimos pelo tamanho do dicionário, através da função len().
Código Python
def menu(): continuar=1 while continuar: continuar = int( input("0. Sair\n"+ "1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)\n"+ "2. Inserir aluno e nota\n"+ "3. Alterar a nota de um aluno\n"+ "4. Consultar nota de um aluno específico\n"+ "5. Apagar um aluno da lista\n"+ "6. Dar a média da turma\n")) if continuar==1: exibir() elif continuar == 2: inserir() elif continuar == 3: alterar() elif continuar == 4: consultar() elif continuar == 5: apagar() elif continuar == 6: media() elif continuar == 0: print("Encerrando programa") else: print("Opção inválida") def exibir(): for nome in alunos.keys(): print("Nome: ", nome, " - Nota: ", alunos[nome]) def inserir(): nome = input("Digite o nome do aluno: ") nota = float(input("Nota dele: ")) if alunos.get(nome): print("Ja existe o aluno ",nome) else: alunos[nome] = nota def alterar(): nome = input("Aluno a mudar a nota: ") nota = float(input("Nova nota : ")) if nome in alunos.keys(): alunos[nome] = nota else: print("Não existe esse aluno") def consultar(): nome = input("Digite o nome do aluno: ") if alunos.get(nome): print("Nota de ",nome, ": ", alunos[nome]) else: print("Nao existe tal aluno") def apagar(): nome = input("Apagar que aluno: ") if alunos.get(nome): alunos.pop(nome) else: print("Não existe o aluno ",nome) def media(): soma = 0 for count in alunos.values(): soma += count print("Média dos alunos: %.2f" % (soma / len(alunos) )) alunos = {} menu()
