Agenda em python
Autor: Juliana Martins | Publicado: 2009-11-15T07:26:00-08:00

Vou postar aqui uma genda que eu fiz pra aula de programação =DEu sei que tem bugs e que tem um monte de verificação que eu poderia ter feito, como a verificação da data pra ver se o mês tem mais de 31 dias, se o ano é bissexto e nao sei o q.... mas quero postá-la pra daqui há uns anos poder ver como eu era pitoca uhahuauhhauhuauhNo mais... ela tá funcionando, então tá bom (:_________________________________________________________# -*- coding: cp1252 -*-print "\t\t::::::......Agenda em Python......::::::"ltnome = []lttel = []ltcel = []ltemail = []ltnasc = []ltmes = []c = -1cont = -1ltnom = []ltsob = []ltvalidarnome = []ltvalidarcel = []ltvalidaremail = []ltvalidaremail2 = []cc = -1while True:    escolha = raw_input("\n\t\tDigite: \n\t\tI para INCLUIR um contato \n\t\tA para ALTERAR um contato \n\t\tC para CONSULTAR um contato\n\t\tR para um RELATÓRIO dos contatos \n\t\tE para EXCLUIR um contato \n\t\t ")    if escolha == 'I' or escolha == 'i':  ###inclusão        while True:            nome = raw_input("\tNome Completo: ")            ltvalidarnome = nome.split(' ')            if len(ltvalidarnome)<= 1:                print "\tErro: nome imcompleto"            else:                break        while True:            telefone = int(raw_input("\tTelefone (apenas números: nnnnnnnn): "))            telefone = str(telefone)            if len(telefone) < 8:                print "\tErro: número inválido"            else:                break        while True:            celular = int(raw_input("\tCelular (apenas números: nnnnnnnn): "))            celular = str(celular)            if len(celular) < 8:                print "\tErro: número inválido"            else:                break        while True:            email = raw_input("\tE-mail (xxxxx@xxxxx.com) : ")            ltvalidaremail = email.split('@')            ltvalidaremail2 = email.split('.')            if len(ltvalidaremail) != 2 or len(ltvalidaremail2) == 0:                print "\tErro: e-mail inválido"            else:                break        while True:            nasc = raw_input("\tData de nascimento (dd/mm/aaaa) : ")            ltvalidarnasc = nasc.split("/")            if len(ltvalidarnasc) != 3:                print "\tErro: formato inválido"            else:                break        dia, mes, ano = nasc.split("/")        ltnome.append(nome)        lttel.append(telefone)        ltcel.append(celular)        ltemail.append(email)        ltnasc.append(nasc)        ltmes.append(mes)           elif escolha == 'A' or escolha == 'a': ###alteração        alt = raw_input("\n\tInforme o nome completo do contato que deseja alterar: ")        if alt in ltnome:            for i in ltnome:   ###verificar em qual posição o nome tá                if i == alt:   ###o i tem os valores de ltnome e o cont tem qntas vezes o prog rodou pra achar o resultado                    s = c            c = c + 1    ###valor inicial do cont = -1 pra ele começar com 0 que é o valor que começa a lista            alter = raw_input("\n\tDigite: \n\tN para alterar o nome \n\tT para alterar o telefone \n\tC para alterar o celular \n\tE para alterar o e-mail \n\tD para alterar a data de nascimento \n\t")            if alter == "N" or alter == "n":  ###alterar nome                while True:                    ltnome[s] = raw_input("\tInforme o novo nome: ")                    ltvalidarnome = ltnome[s].split(' ')                    if len(ltvalidarnome)<= 1:                        print "\tErro: nome imcompleto"                    else:                        break            if alter == 'T' or alter == 't': ###alterar telefone                while True:                    lttel[s] = raw_input("\n\tInforme o novo telefone: ")                    if len(lttel[s]) < 8:                        print "\tErro: número inválido"                    else:                        break            if alter == 'C' or alter == 'c': ###alterar celular                while True:                    ltcel[s] = raw_input("\n\tInforme o novo celular: ")                    if len(ltcel[s]) < 8:                        print "\tErro: número inválido"                    else:                        break            if alter == 'E' or alter == 'e':   ####alterar e-mail                while True:                    ltemail[s] = raw_input("\n\tInforme o novo e-mail: ")                    ltvalidaremail = ltemail[s].split('@')                    ltvalidaremail2 = ltemail[s].split('.')                    if len(ltvalidaremail) != 2 or len(ltvalidaremail2) == 0:                        print "\tErro: e-mail inválido"                    else:                        break            if alter == 'D' or alter == 'd':   ### alterar data de nascimento                while True:                    ltnasc[s] = raw_input("\n\tInforme a nova data de nascimento: ")                    ltvalidarnasc = ltnasc[s].split("/")                    if len(ltvalidarnasc) != 3:                        print "\tErro: formato inválido"                    else:                        break                       else:            print "\n\t\tErro: Contato não encontrado"           elif escolha == "C" or escolha == "c": ##consultar        consul = raw_input("\n\tDigite: \n\tN para consultar por nome \n\tS para consultar por sobrenome \n\tA para consultar por aniversário do mês \n\t ")        if consul == 'n' or consul == 'N': ##consulta por nome            nom = raw_input("\n\tInforme o nome: ")            for i in range(len(ltnome)):                ltnom = ltnome[i].split(" ")                if ltnom[0] == nom:                    print "\n\tNome: ", ltnome[i], "\n\tTelefone: ", lttel[i], "\n\tCelular: ", ltcel[i], "\n\tE-mail: ", ltemail[i], "\n\tData de nascimento: ", ltnasc[i]                    break                else:                    break        elif consul == 'S' or consul == 's':            sob = raw_input("\n\tInforme o sobrenome: ")            for i in range(len(ltnome)):                ltsob = ltnome[i].split(" ") ##cria uma lista que tira o espaço e armazena os nomes, depois verifica se a segunda posição é igual ao sobrenome                if ltsob[-1] == sob:                    print "\n\tNome: ", ltnome[i], "\n\tTelefone: ", lttel[i], "\n\tCelular: ", ltcel[i], "\n\tE-mail: ", ltemail[i], "\n\tData de nascimento: ", ltnasc[i]                    break                else:                    break        elif consul == "A" or consul == "a":    ###consulta por aniversário            ani = raw_input("\n\tInforme o mês: ")            if ani in ltmes:                for i in ltmes:                    if i == ani:                         print "\n\tNome: ", ltnome[cc], "\n\tTelefone: ", lttel[cc], "\n\tCelular: ", ltcel[cc], "\n\tE-mail: ", ltemail[cc], "\n\tData de nascimento: ", ltnasc[cc]                cc = cc + 1            else:                break        else:            print "\t\tErro: Opção inválida"    elif escolha == 'R' or escolha == 'r': ####relatório        for i in range(len(ltnasc)):            print "\n\tNome: ", ltnome[i], "\n\tTelefone: ", lttel[i], "\n\tCelular: ", ltcel[i], "\n\tE-mail: ", ltemail[i], "\n\tData de nascimento: ", ltnasc[i]    elif escolha == 'e' or escolha == 'E':   ###excluir        exc = raw_input("\n\tInforme o nome completo do contato que deseja excluir: ")        if exc in ltnome:            for i in ltnome:                if i == exc:                    ltnome.pop(cont)                    lttel.pop(cont)                    ltcel.pop(cont)                    ltemail.pop(cont)                    ltnasc.pop(cont)            cont = cont + 1        else:            print "\n\tErro: Contato não encontrado"               else:        print "\t\tErro: opção incorreta"           _______________________________________É isso ai, eu sei que daria pra complementar usando funções def, mas ainda nao peguei mto a "manha" ;);*