
ps: A tirinha acima não tem nada a ver com a notícia e não é minha.
O Daily Python URL é um site que traz diariamente um site com algum conteúdo relacionado à Python.
O artigo sobre Python Image Library, mesmo em português, que já havia saído no BR-Linux, agora foi um dos escolhidos como URL do dia 30-05-2007.
É um incentivo a mais para que eu comece a escrever e traduzir alguns posts bons, para inglês.
May 26 2007
Por Silveira, tags: programação, Python, Tech, Tutorial.
Persistência, em programação, é guarda alguma informação para você pegar depois.
A solução mais comum para persistência de dados são os bancos de dados, que podem resolver esse problema de uma maneira sofisticada e eficiente.
Por outro lado, para usar um banco de dados você vai precisar:
Tudo isso é chato e complicado, ainda mais se você quer fazer algo bem simples onde o desempenho não é um fator crítico. Você também poderia guardar suas informações num arquivo mas você teria que tratar vários aspectos de baixo nível.
Python tem algumas maneiras simples e fáceis de tratar persistência. Uma delas é o Shelve, que é um módulo padrão do Python.
Para brincar com ele abra seu terminal python digitando python no seu console:
>>> import shelve
>>> arq = shelve.open(’asdf’)
>>> arq['site'] = ‘http://www.python.org’
>>> arq['pi'] = 3.1415
>>> arq['fibo'] = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
>>> print arq['pi']
3.1415
>>> print arq['fibo']
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
>>> del arq['site']
import shelve vai importa o módulo shelve. arq vai receber o arquivo asdf, que se não existir vai ser criado. Depois disso você pode usar arq como um dicionário comum, indexado por uma string chave. Para deletar alguem do arquivo simplesmente dê um del arq[chave].
Experimente fechar seu console e olhar como ficou o diretório onde você executou o terminal Python:

Um arquivo asdf foi criado. Você não precisa se preocupar como esses dados estão guardados dentro desse arquivo, o shelve vai cuidar disso para você.
Agora se você abrir novamente o console dentro desse diretório:
>>> import shelve
>>> arq = shelve.open(’asdf’)
>>> for chave in arq:
… print chave, arq[chave]
…
fibo [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
pi 3.1415
Tadã! Seus dados de volta.
Fica bem mais fácil fazer programas com persistência agora não é?
Vá mais longe! Livros de Como Programar em Python pelos menores preços.
Buscapé.
Livros de bolso em geral são ótimos.

Eu estava querendo comprar um bom livro de Python mas devido a fortes cortes na minha verba destinada a literatura técnica, teve que ser um livro de bolso mesmo.
Mas livros de bolso e cartões de referência tem suas vantagens, são pequenos, baratos, leves e vão direto ao assunto.
É chato ter um livro que pesa como um halteres e que na prática você só vai precisar mesmo para consulta.
O livro que eu comprei, e já li, e que está aí na foto é o Python Guia de Bolso do Mark Lutz, da O’Reilly e públicado no Brasil pela Alta Books.
O livro em si é muito bom, trata desde assuntos básicos como operações com listas, tuplas, strings, arquivos, passando pela sintaxe da linguagem e tocando em assuntos como Tkinter, Banco de Dados, persistência de objetos, expressão regular e alguns modulos padrão do Python.
Esse livro somado a um console Python, é diversão garantida. Outro item a favor dele é que ele ficou pequeno e leve, realmente um livro de bolso.
Os contras desse livro ficam por conta da edição brasileira. A tradução é péssima, são incontáveis erros. Alguns comandos que deveriam ter sido escrito em inglês foram traduzidos, algumas coisas que deveriam ter sido traduzidas não foram.
A coisa tá bizarra. Tá bizarra e perdeu um
na minha avaliação. Tá certo que o livro original não tem esses problemas, mas é uma forma que eu tenho de dar um puxão de orelha nessas editoras que fazem essas traduções preguiçosas.
O veredicto é:

Ganhou uma nota boa, mas é porque o Python ajudou e o livro tá muito barato. Eu comprei o meu por menos de R$ 20,00 aqui na minha cidade.
Pesquise os menores preços desse e outros livros de Python e saia programando por aí. Buscapé.
Uma coisa que andei brincando esses dias.
Um certo dia um senhor chamado Stanislaw Ulam, entediado durante um encontro científico, começou a rabiscar números em um papel para se distrair. Ele começou colocando o 1 no centro e fazer uma espiral de números ao redor dele:

Depois ele decidiu destacar aqueles números que eram primos. Um número é primo se só tem dois divisores, que são 1 e o próprio número. O número 7 é primo porque só pode ser dividido por 1 e por 7. O número 4 não é primo porque pode ser dividido por 1, 2 e 4. Esse método de desenhar os primos é chamada de Espiral de Ulam.

Essa foi a espiral até 49. Oh! E essas diagonais? Vamos continuar o mesmo processo, mas agora indo um pouco mais longe. Uma grade onde o centro representa o número 1 da espiral, deixando os números primos em preto e os não primos em branco.

Espiral de Ulam no intervalo de 1 à 10.000
Notou que apareceram algumas diagonais? O nosso senso comum nos diz que elas não deveriam estar aí, que a distribuição dos números primos, mesmo em uma espiral, deveria ser aleatória. Note a diferença de uma espiral com números escolhidos ao acaso e da espiral de ulam;

Espiral de Ulam à esquerda e aleatória a direita. Com 40.000 pontos.
Eu fiz um programinha em Python (ulam.py) para gerar uma espiral de Ulam de um tamanho arbitrário. Gerar esse gráfico é bem pesado, para gerar o desenho de 5000 pixels por 5000 pixels levou 27 minutos.
Clique aqui para ver essa imagem, um intervalo de 25.000.000. Cuidado a imagem tem mais de 1Mb de tamanho.
Legal né?
Ainda acha que primo é o filho da sua tia? Dê uma olhadinha nesses livros de matemática baratinhos. Buscapé.