14 mar

[off] Python

Começando no maior estilo “Tribalistas”: Bom dia comunidade! Podemos definir esse como sendo meu primeiro post para o Cotidiano Linux, hoje vamos tratar de Programação. A linguagem a tratar será Python[bb], pois essa vem se desenvolvendo bem e mostrando-se muito presente no universo Linux e Open Source, como as diversas possibilidades com Python e Gimp[bb], a gama de softwares em Python presentes no BackTrack, ou mesmo no universo web com o framework Django[bb] ou Api’s como a do twitter, e esses foram apenas alguns poucos exemplos das milhares de possibilidades que o Python oferece ao desenvolvedor. Ainda no mesmo conceito, vamos ver um pouco a respeito de teoria, afinal, what a fuck is Python ?

O que é Python ?

Python é uma linguagem interpretada, orientada a objetos, linguagem de programação alto nível com semântica dinâmica. A estrutura de dados construída em alto nível, combinada a tipagem e binding dinâmicos, o faz muito atrativo para desenvolvimento[bb] rápido de aplicações. Bem como para utilização como uma linguagem de script[bb] ou para conectar componentes existentes. Python é simples, fácil de aprender a sintaxe enfatiza a legibilidade e, portanto, reduz o custo de manutenção do programa.

Python suporta modules e packages, os quais encorajam a programação modular e reutilização de código. O interpretador Python e a extensa biblioteca padrão estão disponíveis em source ou binary, sem modificações para todas as principais plataformas, e pode ser distribuído gratuitamente. Muitas vezes, os programadores[bb] se apaixonam por Python devido o aumento da produtividade que ele proporciona.

Como não há nenhuma etapa de compilação, o ciclo de edit-test-debug é incrivelmente rápido. Depuração de programas Python é fácil: um problema ou uma bad input nunca irá causar uma segmentation fault. Em vez disso, quando o interpretador descobre um erro, ele gera uma exceção. Quando o programa não gera a exceção, o interpretador mostra um stack trace. Um Debugger de código[bb] fonte permite a inspeção de variáveis ​​locais e globais, avaliação de expressões arbitrárias, definir brakepoints, percorrendo o código uma linha por vez, e assim por diante.

O Debugger é escrito em Python, atestando o poder introspectivo do Python. Por outro lado, muitas vezes a maneira mais rápida para Debuggar um programa é declarar alguns prints no fonte: o ciclo rápido de edit-debug-test torna essa abordagem simples e muito eficaz.

Descrição Original: http://www.python.org/doc/essays/blurb.htm

Para saber mais detalhes a respeito do Python você pode consultar: http://python.org/

Agora que já temos um insight sobre como o Python funciona, você caro amigo ou amiga Geek deve estar no mínimo curioso ou curiosa a respeito do mesmo, então vamos pular as delongas e partir para a instalação do Python no seu Linux[bb], no nosso caso para sistemas Debian[bb] e derivados, como Ubuntu por exemplo, para os demais basta substituir o apt-get install pelo equivalente.

Devido ao tempo de vida da versão e meu costume, estou utilizando Python 2.6.6 porém o mesmo já se encontra atualmente na versão 3.2 estável e 3.3 em desenvolvimento, todas disponíveis para download. Caso você queira saber das diferenças entre as versões, este artigo ilustra o que há de novo na versão 3 do Python: http://docs.python.org/release/3.0.1/whatsnew/3.0.html. Porém, com tantas informações e alguns casos específicos, pode surgir a questão: “Should i use python 2 or 3 ?”, essa mesma questão é discutida no artigo http://wiki.python.org/moin/Python2orPython3 e pode dar um “norte” caso hajam algumas dúvidas. Para a continuação do artigo utilizaremos o Python em sua versão 2.6, pois como dito anteriormente, além de eu estar mais habituado, é ainda mais fácil de se encontrar documentação, artigos, livros e outros desenvolvedores. Porém quem opitou pelo Python 3 também pode adaptar as pequenas diferenças, e o mesmo também já possui extensa documentação e adeptos.

Instalando o Python

Python já vem instalado por default em diversas distribuições Linux, Como Debian, Ubuntu e derivados: Primeiramente nos certificaremos de obter a ultima versão estável do interpretador Python instalada em nosso sistema:

sudo apt-get update
sudo apt-get install python

Depois iremos instalar a IDLE Python. A IDLE nos permitirá lidar diretamente com o desenvolvimento Python de maneira mais dinâmica e orgânizada, executaremos então:

sudo apt-get install idle idle-python2.6 #Para usuarios de Python 2.6
sudo apt-get install idle3               #Para usuarios de Python 3

Caso necessário, você também pode instalar Python manualmente e checar por outros downloads em: http://www.python.org/download/
Experimente abrir um terminal e digitar “python”, você receberá algo como:

Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5] on linux2Type “help”, “copyright”, “credits” or “license” for more information.>>>

Bem vindo ao Python, esta é a shell do python, o que trataremos adiante. Caso você costume trabalhar com ambientes de desenvolvimentos com mais recursos nativos ou simplesmente queira testar, pesquisar a respeito de outros softwares, IDES, módulos para Python, você pode encontra-los aqui:

http://www.python.org.br/wiki/SoftwarePython. Para o post, usaremos a IDLE do Python mesmo, para roda-la você pode clicar no ícone no menu do seu sistema, ou digitar em seu terminal: “idle python2.6” ou “idle3” para Python 3.

A IDLE

IDLE[bb] é um ambiente de desenvolvimento integrado para Python, que é lançado em cada liberação da ferramenta de programação desde a versão 2.3. Ele não é incluso no pacote python incluído com muitas distribuições Linux. É completamente escrito em Python e com o kit de ferramentas de GUI Tkinter (funções de empacotamento para Tcl/Tk). De acordo com o arquivo README incluso, suas principais características são:-Editor de textos multi-janela com destaque de sintaxe, autocomplemento, identação rápida e outras.-Shell Python com destaque de sintaxe.-Depurador integrado com passo-a-passo, pontos de parada persistentes e visibilidade de chamada de pilha.O nome Python foi definido em homenagem ao grupo de comédia britânico Monty Python. Assim, o nome IDLE pode ser uma alusão à Eric Idle, um dos membros fundadores do grupo. Veja também o Eric Python IDE, que também poderia ser uma alusão.
fonte: http://docs.python.org/library/idle.html

O Python contém uma shell que pode ser aberta no menu “Run>Python Shell” ou digitando “python” no terminal. Essa shell é a representação do interpretador python, a mesma contém um prompt que permite incluir um comando e observar sua saída imediatamente. A shell ainda é responsável por exibir a saída dos softwares executados através da IDLE e pelo Debug da mesma. Apesar de muito mais confortável, não é necessário o uso da IDLE ou alguma outra IDE, você pode escrever seus programas até mesmo em um editor de texto (Kate, Gedit, Etc) e roda-los através do terminal chamando o comando “python <nomedosource.py> normalmente, ou chamar a shell apenas digitando “python”.

Programando em Python:

Primeiramente abra a sua IDLE e digite o comando: print ‘hello world’
Um detalhe importante, é que como o Python é uma linguagem interpretada, se faz necessário que você salve o programa sempre antes de executa-lo. Após digitar o comando, pressione F5, caso a Shell tenha sido aberta e você tenha recebido um Olá Mundo, tudo correu bem. O uso do ponto e vírgula pode ser feito ou não e não afetará na interpretação do programa. Agora que já dizemos olá ao mundo, vamos programar um software básico, o nosso software consistirá em inverter strings, o qual também poderá ser utilizado caso você tenha aquela string chata de um link que estava bloqueado, você poderá inverte-lo facilmente.
Apague o comando anterior (ou deixe-o rs). Agora digite:
I = raw_input(‘Digite a url: ‘)
Em Python a declaração de variáveis não se faz necessária, exceto alguns casos, sendo assim podemos criar uma variável a qualquer momento no source, no comando acima declaramos a variável I, nossa variável receberá uma entrada de usuário em forma de texto, uma raw_input, a raw_input emitirá o texto ‘Digite a url: ‘ na tela e enviará a entrada recebida para a variável. Agora digite:
print ‘\n ‘,I [::-1],’ \n’
Esse último ira mostrar a saída na tela contendo a string I, o qual foi digitada pelo usuário, porém a inverte com o comando [::-1], isso ocorre porque em Python tudo é tratado como objeto. A string é uma lista de caracteres a qual pode ser invertida trocando cada posição da mesma com [::-1].

Basta agora pressionar F5 e testar o seu programa. Caso você queira executar seu programa via terminal, salve-o em uma pasta de sua preferencia, após salvo abra um terminal, digite “python /diretório_do_programa/programa.py”, caso você tenha passado o diretório e o nome do artigo corretamente, você observará a o programa sendo executado.
Os exemplos acima são meramente ilustrativos, apenas para que o leitor possa ter um contato com a linguagem, ainda há inúmeras características em Python que poderiam ser citadas, porém poderiam estender o artigo e não é nossa intenção escrever, por hora, um tutorial ou artigo a respeito de programação prática em Python. Caso tenha se interessado por Python, segue abaixo alguns links para bons livros que poderão auxiliar no aprendizado e entendimento da linguagem:

Learning Python – Second Edition:
http://www.4shared.com/file/YQwZm-DB/LearningPython-SecondEdition.html

Beginning Python:
http://www.4shared.com/document/MSoYQQ9I/BeginningPython.html

Python Basico:
http://www.4shared.com/account/document/25WJycAE/python_basico.html

Obrigado por terem lido o artigo e por visitarem o Cotidiano Linux. No próximo post trataremos de Python GUI em ambientes gráficos Linux. Um abraço e voltem sempre.

Felippe Regazio

Humano nas horas vagas.