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]))
Click here to get the file