Resolução da Agenda - Otimização
Essa versão da resolução da agenda é mais complexa pois envolve a chamada de funções a partir de outra funções. No entanto, o código é otimizado.
Size 2.9 kB - File type text/python-sourceFile contents
path="C:/Python31/agenda.txt" def escreveListaNoArquivo(lista): agenda=open(path,"w") agenda.writelines(lista) agenda.close() def cadastrar(nome,telefone): agenda=open(path,"a") agenda.write(nome + "\t" + telefone + "\n") agenda.close() def remover(nome): lista,pos = pesquisar(nome) if (pos!=-1): lista.pop(pos) escreveListaNoArquivo(lista) return (pos) def alterar(nome): lista,pos = pesquisar(nome) if (pos!=-1): lista2=lista[pos].rsplit("\t") name = input("Digite o novo nome: ") tel = input ("Digite o novo telefone: ") lista[pos] = name + "\t" + tel + "\n" escreveListaNoArquivo(lista) return (pos) def pesquisar(nome): agenda=open(path,"r") lista=agenda.readlines() agenda.close() pos=-1 for i in range(len(lista)): lista2=lista[i].rsplit("\t") if (lista2[0]==nome): pos = i return (lista,pos) def exibir(): agenda=open(path,"r") lista=agenda.readlines() agenda.close() print ("Nome\tTelefone\n") for i in lista: print (i) #Inicio do programa principal op="" while(op.upper()!="S"): print ("************AGENDA******************") print ("Digite:\nc-->Cadastrar \nr-->Remover \na-->Alterar \np-->Pesquisar \ne-->Exibir\ns-->Sair") op=input("Opcao:") #Cadastrar if (op.upper()=="C"): print ("=========Cadastro de Contatos==========") name = input("Digite o nome:") tel = input("Digite o telefone:") cadastrar(name,tel) print("\nContato %s cadastrado com sucesso\n" %(name)) #Remover if(op.upper()=="R"): print ("==========Remover Contato=============") name = input("Digite o nome:") result = remover(name) if (result!=-1): print("\nContato %s removido com sucesso\n" %(name)) else: print("\nContato %s nao localizado na agenda\n" %(name)) #Exibir if (op.upper()=="E"): print ("==========Exibicao dos Contatos=============") exibir() #Alterar if(op.upper()=="A"): print ("==========Alterar Contato=============") name = input("Digite o nome:") result = alterar(name) if (result!=-1): print("\nContato %s alterado com sucesso\n" %(name)) else: print("\nContato %s nao localizado na agenda\n" %(name)) #Pesquisar if (op.upper()=="P"): print ("==========Pesquisar Contato=============") name = input("Digite o nome:") lista,pos = pesquisar(name) if (pos==-1): print("\nContato %s nao localizado na agenda\n" %(name)) else: lista2 = lista[pos].rsplit("\t") print ("nome: %s\ntelefone: %s" %(lista2[0],lista2[1]))