CRUD é uma sigla extremamente comum em tecnologia da informação. De forma geral, um CRUD é uma aplicação (um programa) que possui quatro funcionalidades principais:
C: Create – Criar/inserir dados.
R: Retrieve – Recuperar/imprimir dados.
U: Update – Atualizar/modificar dados.
D: Delete – Remover/apagar dados.
Utilize o conceito de CRUD para ajudar o professor a armazenar os alunos e suas notas da Turma G "de Gato". Cabe a você implementar a seguinte série de operações:
C aluno nota: Cria um novo aluno com nome aluno e com nota.
R aluno: Imprime uma linha com a nota do aluno de nome aluno.
U aluno nota: Atualiza a nota do aluno com a nova nota.
Entrada:
A primeira linha da entrada contém um inteiro 1 ≤ q ≤ 105 representando o número de operações. As próximas q linhas da entrada são operações dos tipos C, R e U, seguindo o formato descrito no enunciado e mostrado nos exemplos.
Saída:
Para cada operação do tipo R, imprima uma linha com a nota atual do aluno dado na operação.
Notas
Para cada caso de teste, já existe um dicionário inicial chamado dic_inicial, inicializado da seguinte forma:
dic_inicial = {
'João' : 10,
'Maria' : 10,
'Jorge' : 4,
'Marta' : 5,
'Mário' : 6,
'Mikael' : 9
}
No primeiro exemplo de teste, foi solicitado, na seguinte ordem:
1) a impressão do nome do João e sua respectiva nota;
2) Atualização da nota do Jorge para 10;
3) a impressão do nome do Jorge e sua respectiva nota;
4) atualização da nota da Marta para 4;
5) a impressão do nome da Marta e sua respectiva nota;
teste no anexo
Soluções para a tarefa
O programa a seguir não conta com validação de dados ou tratamento de exceções, assim cabe ao usuário alguns cuidados como, por exemplo, a digitação correta dos dados, atentando para a diferenciação entre letras minúsculas e maiúsculas, acentuação etc.
O interesse nessa resolução não será na performance de tempo do programa, mas a legibilidade do código e, dessa forma, utilizaremos os métodos update() e get() para criar, atualizar e adquirir informações do dicionário em vez da indexação (opção mais rápida).
[Python 3.8]
Comentários: Perceba que a criação e a atualização de dados são idênticas, isso acontece porque o método update() "tenta" atualizar um item no dicionário, mas, se a chave (key) não existir, o item é então criado.
Neste exercício, essas duas operações poderiam ter sido fundidas.
Ainda, como dito anteriormente, a indexação ofereceria uma alternativa mais rápida de execução do programa, porém discutivelmente menos legível. Abaixo deixo as linhas que sofreriam alteração seguindo a indexação.