A Linguagem Python

Python é uma linguagem orientada a objetos muito dinâmica que pode ser usada para o desenvolvimento de tipos variados de software. Ela oferece um forte suporte para a integração com outras linguagens e ferramentas, vem com extensivas bibliotecas padrões, e pode ser aprendida em poucos dias. Muito popular entre desenvolvedor Linux, esta linguagem está se tornando muito popular, tanto para o desenvolvimento de softwares quanto para a web, em modo CGI.

Seu desenvolvimento teve início em 1990, pelo holandês Guido van Rossum, na CWI em Amsterdã e continuou na CNRI (fundação que sustenta a linguagem hoje) em Reston. O conjunto de entidades e pessoas ligadas ao Python, sobretudo via Internet, formam a Python Software Activity (PSA).

Em Python, diferentemente de C++ ou Java, as funções são tratadas como objetos, característica de linguagens de programação funcional como Lisp, muito utilizada em aplicações de inteligência artificial. Outro ponto importante, oferecendo grande flexibilidade, é que, em Python, cada argumento de uma função pode assumir um valor default.

Os módulos, em Python, são coleções de funções. Sua versão 1.5.2 já incluía mais de 140 módulos, sem contar a extensão gráfica Tk que será importante na construção das ferramentas de interesse deste trabalho. E desconsiderando também outros módulos que podem ser encontrados a partir do site oficial (www.python.org), quase todos livres e gratuitos. Como ilustração, podemos citar alguns módulos, como o CGI (para programação de páginas dinâmicas), ftplib (para montagem de scripts para interação com servidores FTP), gzip (para leitura e escrita de arquivos comprimidos), math (para utilização de funções matemáticas), re (para busca de texto com expressões regulares, característica da linguagem Perl), string (para operações com strings), time (para obtenção de hora atual e conversão de formatos de data), xmllib (para interpretação de arquivos em formato XML). Temos especial interesse nos módulos de computação científica como o Numerical (NumPy).

O NumPy é um conjunto de extensões para Python que oferecem várias funcionalidades para manipulação de conjuntos de objetos chamados arrays. Estes, por sua vez, podem ter qualquer número de dimensões. A vantagem destas extensões é que podemos processar grandes conjuntos de forma tão rápida quanto os resultados das linguagens não interpretadas de mais baixo nível. A manipulação de grandes conjuntos numéricos, que é o caso do processamento de imagens, se fosse usadas as estruturas de dados padrão do Python, poderia ser muito lenta e ocupar muito espaço. Entretanto, mesmo assim, comparando a execução de comandos de iteração (como o comando "for"), críticos em linguagens interpretadas, o Python se revela eficiente, sendo mais rápido, por exemplo, que o MATLAB. Tanto Python como MATLAB podem facilmente agregar funções (boa extensividade), o que é importante para nossos objetivos de construção de caixa de ferramentas. O fato de o Python ter código aberto e ser gratuitamente distribuído, inclusive com o Numerical Python, foi um elemento decisivo na escolha desta linguagem, já que a intenção, entre outras, é beneficiar qualquer pessoa interessada em ferramentas de processamento de imagens.

Uma das características mais marcantes da linguagem, a sintaxe do Python é clara, concisa e elegante, o que facilita a manutenção e garante a produtividade.

    Veja os exemplos:

O tradicional "Hello, world":

 


print 'Olá, mundo!'

 

Imprimindo uma lista ordenada com os itens com a primeira letra em maiúscula:

 


lista = ['laranja', 'banana', 'uva']
lista.sort()

for item in lista:
print item.capitalize()

 

Contando palavras em um arquivo:

 


arquivo = file('text.txt')
palavras = arquivo.read().split()
unicas = set(palavras)

print 'Palavras: %d. Tirando as repetidas: %d' % (len(palavras), len(unicas))

 

Enviando e-mail:

 


import smtplib
server = smtplib.SMTP('mail.xx.net')

# Envio de e-mail da conta @xy para a conta @xx

server.sendmail('fulanoTal@xy.com', 'fulanoTal@xx.net',
"""To: fulanoTal@xx.net
From: fulanoTal@xy.com
Subject: Teste de envio de email
Estou lhe enviando este email como um teste.
""")

server.quit()
print 'Envio OK'

 

Cálculos matemáticos:

 


>>> from math import *
>>> x = 5
>>> sqrt(x)
2.2360679774997898

>>> sin(x)
-0.95892427466313845

>>> log(x)
1.6094379124341003

>>> cos(x)
0.28366218546322625

 

Sequência de Fibonacci:

 


valor = int(raw_input("Digite o valor: "))
a, b = 0, 1
while b < valor:
print b
a, b = b, a+b

 

Orientação a objeto:

 


class A:
a = 1 # atributo publico

class B(A): # classe B está herdando A
_c = 3 # atributo considerado privado

def __init__(self): # método especial que pode ser considerado "construtor"
print self.a
print self._c

a = A()
print isinstance(a, B) # ''Objeto a'' é uma instância da ''classe B''? Falso.

a = B() # Instancía o ''objeto a'' na ''classe B'' e imprime os atributos da classe.
print isinstance(a, B) # ''Objeto a'' é uma instância da ''classe B''?Verdadeiro.

b = B() # Instancía o ''objeto b'' na ''classe B'' e imprime os atributos da classe.
print isinstance(b, B) # ''Objeto b'' é uma instância da ''classe B''? Verdadeiro.

b = A() # Instancía o ''objeto b'' na ''classe A''.
print isinstance(b, A) # ''Objeto b'' é uma instância da ''classe A''? Verdadeiro.

 

Polimorfismo:

 


class Pessoa:

def __init__(self, nome ='', idade=0):
self.nome = nome
self.idade = idade

def getIdade(self):
return self.idade

class PessoaCPF(Pessoa):

def __init__(self, CPF, nome='', idade=0):
Pessoa.__init__(self, nome, idade)
self.CPF = CPF

#######################################
# Expondo o método __init__

a = Pessoa()
Pessoa.__init__(a, 'Leonardo', 22)

b = PessoaCPF('122.333.332-1', nome='', idade=0)

print a.nome # imprime Leonardo
print a.idade # imprime 22
print b.CPF # imprime 122.333.332-1

#######################################
# Não expondo o método __init__

a = Pessoa('Leonardo', 22)
b = PessoaCPF('122.333.332-1', a)

print a.nome # imprime Leonardo
print a.idade # imprime 22
print b.CPF # imprime 122.333.332-1

 

Instalador

Para testar os códigos acima é preciso instalar o Python. Para isto bastar efetuar o download do instalador para Windows.

O nome do arquivo a ser baixado é Python 3.0.1 Windows installer (phyton-3.0.1.msi) Trata-se de um arquivo de 12.8 MB contendo tudo que você precisa para iniciar seus estudos em Python. Baixe o arquivo e faça a instalação.

Testando a instalação:

Abra uma janela do Prompt de Comando e digite o seguinte comando (a partir de qualquer diretório):

python

As chances são muito boas para o surgimento da mensagem abaixo:

'python' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.

Isso acontece porque o Windows não encontrou o interpretador Python em sua lista de programas válidos. Podemos resolver isso adicionando o caminho da instalação no PATH do sistema. Para isso vá para Iniciar -> Configurações -> Painel de Controle -> Sistema. Na aba Avançado, localize o botão Variáveis de ambiente. Em Variáveis de Sistema, localize Path ou PATH, clique Editar e acrescente o valor:

C:\Python3.0.1 - ou nome do diretório onde está instalado o Python.

Dê ok para fechar todas as janelas, abra a janela Prompt de Comando novamente e digite:

python

Você deverá ver um resultado parecido com o que temos abaixo:

Python 3.0.1 (rx, data hora) [MSC v.x 32 bit (Intel)] on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Obteve resultado parecido? Então bem vindo à programação Python. - [Topo]

 


Associação SoftwareLivre

A Associação SoftwareLivre.org (ASL) é uma associação civil sem fins-lucrativos, com sede em Porto Alegre/RS que reúne empresários, profissionais liberais, estudantes e servidores públicos, estabelecendo relações com os mais diversos setores da sociedade como o poder público, universidades, empresas, grupos de usuários, hackers e ONGs. A ASL tem por principal objetivo tornar o software livre amplamente incluído na sociedade, propiciando espaço de discussão, apoio, fomento e organização de iniciativas nas mais diversas áreas relacionadas. - Site oficial da associação