Agenda em Python
Publicado por Jamilson Silva do Carmo (última atualização em 17/08/2009)
[ Hits: 21.925 ]
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()
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Mint Xfce não mantém a conexão no wi-fi (2)
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)









