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 :(
Eu fiz assim:
ResponderExcluirnotas = {'Joel': 10, 'Rafael': 9.5, 'Maria': 10}
menu = int(input("0. Sair;\n"
"1. Exibir lista de alunos com suas notas;\n"
"2. Inserir aluno e nota;\n"
"3. Alterar a nota de algum aluno;\n"
"4. Nota de um aluno específico;\n"
"5. Apagar um aluno;\n"
"6. Média da Turma\n"
"Digite um dos números: "))
if menu == 0:
exit()
if menu == 1:
print(notas)
if menu == 2:
aluno = input("Digite o nome do aluno: ")
nota = input("Digite a nota do aluno: ")
notas[aluno] = nota
print(notas)
if menu == 3:
aluno = input("Digite o nome do aluno: ")
if notas.get(aluno) == None:
print('Aluno inexistente')
else:
nota = input("Digite a nota correta do aluno: ")
notas[aluno] = nota
print(notas)
if menu == 4:
aluno = input("Digite o nome do aluno: ")
if aluno in notas == None:
print('aluno inexistente')
else:
nota = notas[aluno]
print(f'{aluno} : {nota}')
if menu == 5:
aluno = input("Digite o nome do aluno que deseja apagar: ")
notas.pop(aluno)
print(notas)
if menu == 6:
média = sum(notas.values())
médiaTotal = média / len(notas)
print(f'A média total é {médiaTotal}.')
else:
print("")
nome = {"abadia": 4, "luciano": 7, "catia": 8}
ResponderExcluir# 0.sair
def menu():
continuar = 1
while continuar:
continuar = int(
input(
"\n0.Sair\n1.Exibir lista de alunos com suas notas (cada aluno tem uma nota)\n2.inserir aluno e nota\n3.alterar a nota de um aluno\n4.consultar a nota de um aluno\n5.apagar um aluno da lista\n6.Dar a média da turma\n"
)
)
if continuar == 0:
continuar = 0
elif continuar == 1:
exibir_alunos()
elif continuar == 2:
inserir_alunos()
elif continuar == 3:
alterar_nota_do_aluno()
elif continuar == 4:
consultar_nota()
elif continuar == 5:
apagar_aluno()
elif continuar == 6:
media_alunos()
print("programa encerrado")
# 1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)
def exibir_alunos():
for n in nome.keys():
print(n, "nota:", nome[n])
# 2. Inserir aluno e nota
def inserir_alunos():
nome_do_aluno = input("digite o nome do aluno ")
nota = int(input("digite a nota do aluno de 1 a 10 "))
nome.setdefault(nome_do_aluno, nota)
# 3. alterar a nota do aluno
def alterar_nota_do_aluno():
for n in nome.keys():
print(n, "nota:", nome[n])
repetição = 1
while repetição:
aluno_nota = input("gual aluno voce deseja mudar a nota ")
if aluno_nota in nome.keys():
nova_nota = int(input("novo valor da nota "))
nome[aluno_nota] = nova_nota
repetição = 0
else:
print("esse aluno nao existe ")
# 4. consultar a nota de um aluno específico
def consultar_nota():
for aluno in nome.keys():
print(aluno)
aluno_expecífico = input("digite gual aluno voce deseja ver a nota ")
while aluno_expecífico not in nome.keys():
print("esse aluno não existe tente novamente")
aluno_expecífico = input("digite gual aluno voce deseja ver a nota ")
print("esse aluno existe e o resultado:")
print(aluno_expecífico, "nota: ", nome[aluno_expecífico])
# 5. Apagar um aluno da lista
def apagar_aluno():
for aluno in nome.keys():
print(aluno, "nota:", nome[aluno])
aluno_excluido = input("digite gual aluno voce deseja exluir")
while aluno_excluido not in nome.keys():
print("esse aluno nao exite tente novamente")
aluno_excluido = input("digite gual aluno voce deseja exluir")
if aluno_excluido in nome.keys():
nome.pop(aluno_excluido)
print("aluno excluido")
# 6. Dar a média da turma
def media_alunos():
soma = 0
tamanho_dicionario = len(nome)
for aluno in nome.keys():
print(aluno, "nota:", nome[aluno])
soma = soma + nome[aluno]
media = soma / tamanho_dicionario
print(soma)
print(f"a media da nota dos alunos e: {media:.2f}")
menu()