Ministério da Educação
Brasil um país de todos
Personal tools
You are here: Home Members Roberta Andrade de Araújo Fagundes Introdução a Programação Resolução da Agenda - Otimização
Navigation
Log in


Forgot your password?
 
Document Actions

Resolução da Agenda - Otimização

by Roberta Andrade de Araújo Fagundes last modified 2009-10-25 12:39

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.

Click here to get the file

Size 2.9 kB - File type text/python-source

File 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]))

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: