Agenda em Python
Publicado por Jamilson Silva do Carmo (última atualização em 17/08/2009)
[ Hits: 22.045 ]
Simples programa de uma agenda em Python que demostra o uso de orientação a objetos.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Criado em: Seg 17/Ago/2009 - 15:05hs
# Autor: Jamilson Silva do Carmo - jscarmo@ig.com.br
#
# Proposito do script: uma agenda bem simples. Digite --help para obter ajuda.
import shelve
import sys
# ver agenda toda
def mostra_todos_registros(agenda):
for nome in agenda:
print nome, agenda[nome]
# insere alguem
def insere(agenda, nome, telefone):
agenda[nome] = telefone
# mostra um determinado nome da agenda
def busca(agenda, nome):
try:
print nome, agenda[nome]
except Exception:
print nome, 'não está na agenda.'
# apaga alguém
def apaga(agenda, nome):
try:
del agenda[nome]
except Exception:
print nome, 'não está na agenda.'
# apaga todos os nomes da agenda
def limpa(agenda):
for nome in agenda:
del agenda[nome]
# ajuda para --help
def ajuda():
print "Uso:"
print sys.argv[0], "[comando] [parâmetros]"
print "--help: mostra esta ajuda"
print "--show NOME: mostra o NOME e seu respectivo telefone"
print "--show: mostra todos os nomes. É a operação padrão"
print "--add NOME TELEFONE: adiciona NOME e TELEFONE para a agenda"
print "--del NOME: remove NOME e seu respectivo telefone da agenda"
print "--clean: apaga todos os nomes da agenda"
def main():
# se não for passado nenhum comando, o comando eh para mostrar tudo
if len(sys.argv) == 1:
comando = "show"
else:
comando = sys.argv[1]
comando.lower()
# abre a agenda
agenda = shelve.open('agenda.db')
# help
if comando in ("help", "-h", "--help", "ajuda"):
ajuda()
# visualização
elif comando in ("show", "-s", "--show"):
if len(sys.argv) == 1 or len(sys.argv) == 2:
mostra_todos_registros(agenda)
elif len(sys.argv) == 3:
nome = sys.argv[2]
busca(agenda, nome)
else:
ajuda()
# deleção
elif comando in ("del", "-d", "-del", "--del", "delete"):
if len(sys.argv) == 3:
nome = sys.argv[2]
apaga(agenda, nome)
else:
ajuda(bin)
# inserção
elif comando in ("add", "-a", "-add", "--add"):
if len(sys.argv) == 4:
nome = sys.argv[2]
tel = sys.argv[3]
insere(agenda, nome, tel)
else:
ajuda()
# destruição
elif comando in ("clean", "-c", "-clean", "--clean"):
limpa(agenda)
else:
ajuda()
# fecha o banco
agenda.close()
if __name__ == "__main__":
main()
Virus, trojan, sei lá o que é isso, PARTE II
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)
O que houve com slackware ??? (12)









