python_para_desenvolvedores
253 pág.

python_para_desenvolvedores


DisciplinaComputação II158 materiais479 seguidores
Pré-visualização34 páginas
Licença
Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Uso Não-
Comercial-Compartilhamento pela mesma Licença 2.5 Brasil. Para ver uma cópia desta 
licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta 
para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, 
USA.
Luiz Eduardo Borges
Python para desenvolvedores
1º EDIÇÃO
RIO DE JANEIRO
EDIÇÃO DO AUTOR
2009
Python para desenvolvedores / Luiz Eduardo Borges
Rio de Janeiro, Edição do Autor, 2009
ISBN 978-85-909451-0-9
Sumário
Parte I 8
Prefácio 9
Introdução 10
Características 10
Histórico 10
Exemplo 11
Versões 11
Tipagem dinâmica 12
Bytecode 12
Modo interativo 12
Ferramentas 14
Cultura 15
Sintaxe 17
Controle de fluxo 20
Operadores lógicos 21
Laços 22
For 22
While 23
Tipos 25
Números 26
Texto 27
Listas 31
Tuplas 32
Outros tipos de seqüências 33
Dicionários 34
Verdadeiro, falso e nulo 38
Funções 39
Documentação 42
Exercícios I 43
Parte II 44
Módulos 45
Módulos da biblioteca padrão 47
Escopo de nomes 48
Pacotes 50
Bibliotecas compartilhadas 51
Bibliotecas de terceiros 53
Arquivos e I/O 55
Sistema de arquivos 56
Arquivos compactados 57
Arquivos de dados 58
Exceções 60
Tempo 62
Introspecção 65
Módulo inspect 66
Exercícios II 68
Parte III 69
Geradores 70
Programação funcional 72
Lambda 72
Mapeamento 73
Filtragem 74
Redução 75
Transposição 76
List Comprehension 77
Generator Expression 77
Exercícios III 79
Parte IV 80
Decoradores 81
Classes 83
Classes abertas 88
Herança simples 90
Herança múltipla 92
Propriedades 95
Sobrecarga de operadores 98
Metaclasses 100
Testes automatizados 103
Exercícios IV 107
Parte V 108
NumPy 109
Arranjos 109
Matrizes 111
Gráficos 114
Processamento de imagem 121
Gráficos 3D 127
Persistência 131
Serialização 131
ZODB 133
YAML 135
XML 138
Banco de dados 144
DBI 144
SQLite 145
PostgreSQL 146
Mapeamento objeto-relacional 152
Web 155
CherryPy 156
CherryTemplate 156
Cliente Web 158
MVC 160
Exercícios V 169
Parte VI 170
Interface Gráfica 171
Arquitetura 172
Construindo interfaces 173
Threads 184
Processamento distribuído 187
Objetos distribuídos 190
Performance 193
Empacotamento e distribuição de aplicações 201
Exercícios VI 204
Apêndices 205
Integração com Blender 206
Integração com BrOffice.org 213
Integração com Linguagem C 216
Python => C 216
C => Python 218
Integração com .NET 219
Respostas dos exercícios I 225
Respostas dos exercícios II 229
Respostas dos exercícios III 235
Respostas dos exercícios IV 238
Respostas dos exercícios V 244
Respostas dos exercícios VI 248
Índice remissivo 251
8 Parte I
Parte I
\u25aa Prefácio.
\u25aa Introdução.
\u25aa Sintaxe.
\u25aa Tipos.
\u25aa Funções.
\u25aa Documentação.
\u25aa Exercícios I.
Prefácio 9
Prefácio
As linguagens dinâmicas eram vistas no passado apenas como linguagens script, usadas 
para automatizar pequenas tarefas, porém, com o passar do tempo, elas cresceram, 
amadureceram e conquistaram seu espaço no mercado, a ponto de chamar a atenção dos 
grandes fornecedores de tecnologia.
Vários fatores contribuíram para esta mudança, tais como a internet, o software de código 
aberto e as metodologias ágeis de desenvolvimento.
A internet viabilizou o compartilhamento de informações de uma forma sem precedentes 
na história, que tornou possível o crescimento do software de código aberto. As 
linguagens dinâmicas geralmente são código aberto e compartilham as mesmas 
funcionalidades e em alguns casos, os mesmos objetivos.
A produtividade e expressividade das linguagens dinâmicas se encaixam perfeitamente 
com as metodologias ágeis, que nasceram do desenvolvimento de software de código 
aberto e defendem um enfoque mais pragmático no processo de criação e manutenção de 
software do que as metodologias mais tradicionais.
Entre as linguagens dinâmicas, o Python se destaca como uma das mais populares e 
poderosas. Existe uma comunidade movimentada de usuários da linguagem no mundo, o 
que se reflete em listas de discussão ativas e muitas ferramentas disponíveis em código 
aberto.
Aprender uma nova linguagem de programação significa aprender a pensar de outra 
forma. E aprender uma linguagem dinâmica representa uma mudança de paradigma 
ainda mais forte para aquelas pessoas que passaram anos desenvolvendo em linguagens 
estáticas.
10 Introdução
Introdução
Python1 é uma linguagem de altíssimo nível (em inglês, Very High Level Language) 
orientada a objetos, de tipagem dinâmica e forte, interpretada e interativa.
Características
O Python possui uma sintaxe clara e concisa, que favorece a legibilidade do código fonte, 
tornando a linguagem mais produtiva.
A linguagem inclui diversas estruturas de alto nível (listas, tuplas, dicionários, data / hora, 
complexos e outras) e uma vasta coleção de módulos prontos para uso, além de frameworks 
de terceiros que podem ser adicionados. Também possui recursos encontrados em outras 
linguagens modernas, tais como: geradores, introspecção, persistência, metaclasses e 
unidades de teste. Multiparadigma, a linguagem suporta programação modular e 
funcional, além da orientação a objetos. Mesmo os tipos básicos no Python são objetos.
A linguagem é interpretada através de bytecode pela máquina virtual Python, tornando o 
código portável. Com isso é possível compilar aplicações em uma plataforma e rodar em 
outras ou executar direto do código fonte.
Python é um software de código aberto (com licença compatível com a General Public 
License (GPL), porém menos restritiva, permitindo que o Python seja incorporados em 
produtos proprietários) e a especificação da linguagem é mantida pela Python Software 
Foundation2 (PSF).
Python é muito utilizado como linguagem script em vários softwares, permitindo 
automatizar tarefas e adicionar novas funcionalidades, entre eles: BrOffice.org, 
PostgreSQL, Blender e GIMP. Também é possível integrar o Python a outras linguagens, 
como a Linguagem C. Em termos gerais, o Python apresenta muitas similaridades com 
outras linguagens dinâmicas, como Perl e Ruby.
Histórico
Python foi criada em 1990 por Guido van Rossum, no Instituto Nacional de Pesquisa para 
Matemática e Ciência da Computação da Holanda (CWI) e tinha como foco original 
usuários como físicos e engenheiros. O Python foi concebido a partir de outra linguagem 
existente na época, chamada ABC.
Hoje, a linguagem é bem aceita na industria por empresas de alta tecnologia, tais como:
1 Página oficial: http://www.python.org/.
2 Endereço na internet da PSF: http://www.python.org/psf/.
Introdução 11
\u25aa Google (aplicações Web).
\u25aa Yahoo (aplicações Web).
\u25aa Microsoft (IronPython: Python para .NET).
\u25aa Nokia (disponível para as linhas recentes de celulares e PDAs).
\u25aa Disney (animações 3D).
Exemplo
Exemplo de programa em Python:
# Exemplo de programa em Python
# Uma lista de instrumentos musicais
instrumentos = ['Baixo', 'Bateria', 'Guitarra']
# Para cada nome na lista de instrumentos
for instrumento in instrumentos:
 # mostre o nome do instrumento musical
 print instrumento
Saída:
Baixo
Bateria
Guitarra
No exemplo, \u201cinstrumentos\u201d é uma lista contendo itens \u201cBaixo\u201d, \u201cBateria\u201d e \u201cGuitarra\u201d. Já 
\u201cinstrumento\u201d é um nome que corresponde a cada um dos itens da lista, conforme o laço é 
executado.
Versões
A implementação oficial do Python é mantida pela PSF e escrita em C, e por isso é também 
conhecida como CPython. A versão estável mais recente está disponível para download no 
endereço:
http://www.python.org/download/
Para Windows, basta executar o instalador. Para outras plataformas,