0
Next, I’m doing a program that’s an academic control system, it turns out that when it comes to adding teachers, for example, it’s not creating new keys for teachers in the dictionary. He’s simply replacing them Here functions to add and query:
def addProfessor(cpf, nome, departamento):
global dicProfessores
dicProfessores = {}
if cpf not in dicProfessores:
dicProfessor = {"Nome":nome, "Cpf":cpf, "Departamento":departamento}
dicProfessores[cpf] = dicProfessor
print("Professor cadastrado com sucesso.")
else:
print("Erro de cadastro.\nEste professor já está cadastrado no sistema.")
def consultarProfessor(cpf):
if cpf in dicProfessores:
dicProfessor = dicProfessores[cpf] #definindo uma variavel para a chave do dicionario de professores
for chave,elem in dicProfessor.items():
print(chave + ": " + str(elem))
else:
print("Este professor não é funcionário desta faculdade.")
and here the code to test(still incomplete):
print(">>>>>>>>>>>>>BEM VINDO AO SISTEMA DE CONTROLE ACADÊMICO<<<<<<<<<<<<<<<")
print("")
print("")
print("Selecione onde você deseja fazer modificações: \n ")
print("1 - Professores\n2 - Alunos\n3 - Disciplinas\n4 - Turmas\n5 - Sair")
escolha = input("Digite o número corresponda a uma das opções: ")
if escolha == "5":
print("Fim do programa.")
break
else:
while True:
if escolha == "1":
print("O que você deseja fazer?\n ")
print("1 - Adicionar professor\n2 - Consultar professor")
print("3 - Atualizar professor\n4 - Deletar professor\n5 - Voltar\n")
escolhaP = input("Digite o número corresponda a uma das opções: ")
if escolhaP == "5":
break
else:
while True:
if escolhaP == "1":
print("\nDigite 'cancelar' para voltar.")
cpfP = input("Digite o cpf do professor: ")
if cpfP == "cancelar": break
nomeP = input("Digite o nome do professor: ")
if nomeP == "cancelar": break
departamentoP = input("Digite o departamento do professor: ")
if departamentoP == "cancelar": break
else:
addProfessor(cpfP, nomeP, departamentoP)
elif escolhaP == "2":
print("\nDigite 'cancelar' para voltar.")
cpfP = input("Digite o cpf do professor: ")
if cpfP == "cancelar".lower(): break
else:
consultarProfessor(cpfP)
You put the dictionary
dicProfessores
as a global variable within the functionaddProfessor
, I believe the problem is there. Global variables should be created in the most external layer of the application (but it is best to avoid them to the maximum). My suggestion is to create a class-collection of teachers. In it you would put the functions of searching for teacher and add when there is no.– PedroMVM
Yes, I would love to use class, but my teacher doesn’t want us to use class in this project, but I will try to put dictionaries inside the interface and take them out of the function module
– taynan
Ae, now it’s gone, just take out the dictionary as a global variable and put it in function
– taynan