Aprenda primeiro:
Adicionar item em um Dicionário
notas={'João' : 9, 'Maria' : 10, 'José': 4}
Vamos supor que chegou um novo aluno, o Peart, que já chegou tirando nota 10 também.
No tutorial anterior (método get e setdefault - Como usar), aprendemos como inserir um valor através do método setdefault.
Você também pode inserir um item em um dicionário dict com chave key e valor value simplesmente fazendo a operação direta:
- dict[ key ] = value
Por exemplo, vamos adicionar o aluno Peart:
notas={'João' : 9, 'Maria' : 10, 'José': 4} notas['Peart'] = 10 print(notas)
Simples, não é verdade?
Mas, cuidado, se esta chave já existir, ele vai substituir o valor anterior.
Por isso, é bom só fazer isso se não existir essa nova chave.
Podemos checar isso com o get.
O script abaixo pergunta um nome e uma nota.
Se este nome já existir, o método notas.get(nome) vai retornar algum valor do dicionário, e cai no IF dizendo que o nome já existe.
Se a chave não existir, retorna None por padrão, o método get(), então cai no ELSE, onde fazemos a atribuição e inserimos um novo item no dicionário, veja:
notas={'João' : 9, 'Maria' : 10, 'José' : 4 } nome = input("Digite o nome do aluno: ") nota = float(input("Nota dele: ")) if notas.get(nome): print("Ja existe o aluno ",nome) else: notas[nome] = nota print(notas)
Como Alterar um Item: in
Agora, vamos aprender como mudar o valor de um determinado item.A primeira coisa que devemos fazer é confirmar se realmente aquele item existe.
E podemos fazer isso com a instrução in.
Se fizermos key in notas.keys()
Ele vai avaliar se a chave key está na lista de valores de notas.keys()
Se sim, retorna True e cai no IF para podermos alterar o valor.
Se não tiver, retorna False e no ELSE dizemos que o aluno não existe, logo não dá pra alterar o valor dele.
Então, nosso script pra alterar alguma nota, ficaria assim:
notas={'João' : 9, 'Maria' : 10, 'José' : 4 } nome = input("Aluno a mudar a nota: ") nota = float(input("Nova nota : ")) if nome in notas.keys(): notas[nome] = nota else: print("Não existe esse aluno") print(notas)
Como excluir um item: pop()
Para excluirmos um determinado item, basta usarmos o método pop() que vai receber a key de deletar o item cuja chave é aquela.Por exemplo, para retirarmos o 'José' do dicionário:
notas={'João' : 9, 'Maria' : 10, 'José' : 4 } print(notas) notas.pop('José') print(notas)
O resultado é:

Exercício de Dicionários em Python
Uma escola te contratou para fazer um software em 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.
Solução: Como usar dicionários em Python
Olá! Excelente site... Poderia avaliar se minha resposta foi bem desenvolvida?
ResponderExcluirdef menu():
print('0. Sair');
print('1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)');
print('2. Inserir aluno e nota');
print('3. Alterar a nota de um aluno');
print('4. Consultar nota de um aluno específico');
print('5. Apagar aluno da lista');
print('6. Dar a média da turma');
opc = int(input("> "));
return opc;
alunos = {
'Joao': 10.0,
'Maria': 9.0,
'Jose': 10.0
}
def aluno(act=1,aluno='',nota=0.0):
if ( act != 0 and act != 1 and act != 6 ):
nomeAluno = input('Digite nome aluno: ');
if ( act == 2 ):
if nomeAluno not in alunos.keys():
alunos[nomeAluno] = nota;
else:
print(nomeAluno + 'já existe na base.');
elif ( act == 3 ):
if nomeAluno in alunos.keys():
alunos[nomeAluno] = nota;
else:
print(nomeAluno + 'não existe na base.');
elif ( act == 4 ):
if nomeAluno in alunos.keys():
print(nomeAluno + 'tem nota igual a' + alunos[nomeAluno]);
else:
print(nomeAluno + 'não tem nota ou existe na base.');
elif ( act == 5 ):
if nomeAluno in alunos.keys():
alunos.pop(nomeAluno);
print(nomeAluno + 'excluido da base.');
else:
print(nomeAluno + 'não existe na base.');
else:
if ( act == 6 ):
tamanho = len(alunos);
totalNotas = 0.0;
for notaAluno in alunos.values():
totalNotas += notaAluno;
media = totalNotas / tamanho;
print("A media é %.2f do total de notas %.2f" %(media, totalNotas));
if ( act == 1 ):
for nomeAluno in alunos.keys():
print('Aluno ' + nomeAluno + ' nota', alunos[nomeAluno]);
cont = True;
while cont:
cont = menu();
if cont == 1:
aluno();
elif cont == 2:
notaAluno = float(input('Digite nota aluno: '));
aluno(2,nota=notaAluno);
elif cont == 3:
notaAluno = float(input('Digite nova nota aluno: '));
aluno(3,nota=notaAluno);
elif cont == 4:
aluno(4);
elif cont == 5:
aluno(5);
elif cont == 6:
aluno(6);
Eu fiz assim:
ResponderExcluirdef menu():
sair = int(input('Ddigite 0 para sair ou 1 para prosseguir: '))
if sair==1:
print('1. Exibir lista de alunos com sua notaAlternar a nota de um aluno\n2. Alternar a nota de um aluno\n3. Inserir aluno e nota\n4. Consultar nota de um aluno específico\n5. Apagar um aluno da lista\n6. Dar a média da turma')
op = int(input('Escolha uma opção: '))
if op==2:
alternar()
elif op==1:
exib()
elif op==3:
inserir()
elif op==4:
consult()
elif op==5:
apagar()
elif op==6:
media()
else:
print('Opção inválida.')
def exib():
notas={'João' : 9,
'Maria' : 10,
'José': 4}
for nome in notas.keys():
print(nome," tirou nota: ", notas[nome])
def alternar():
notas={'João' : 9,
'Maria' : 10,
'José' : 4 }
nome = input("Aluno a mudar a nota: ")
nota = float(input("Nova nota : "))
if nome in notas.keys():
notas[nome] = nota
else:
print("Não existe esse aluno")
print(notas)
def inserir():
notas={'João' : 9,
'Maria' : 10,
'José' : 4 }
nome = input("Digite o nome do aluno: ")
nota = float(input("Nota dele: "))
if notas.get(nome):
print("Ja existe o aluno ",nome)
else:
notas[nome] = nota
print(notas)
def apagar():
notas={'João' : 9,
'Maria' : 10,
'José' : 4 }
nome=input('Quem você deseja excluir: ')
notas.pop(nome)
print(notas)
nao consegui fazer o 4 e nem o 6 :(