python-para-desenvolvedores-2ed-2
360 pág.

python-para-desenvolvedores-2ed-2


DisciplinaProgaramacao47 materiais107 seguidores
Pré-visualização47 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.
Site oficial
A edição mais recente está disponível no formato PDF em:
http://ark4n.wordpress.com/python/
Capa
Imagem utilizada na capa (Steampython):
http://ark4n.deviantart.com/art/Steampython-150806118
Luiz Eduardo Borges
Python para Desenvolvedores
2ª edição
Rio de Janeiro
Edição do Autor
2010
Python para Desenvolvedores / Luiz Eduardo Borges
Rio de Janeiro, Edição do Autor, 2010
ISBN 978-85-909451-1-6
Agradecimentos
Gostaria de agradecer a minha esposa e aos meus pais, pela paciência que 
tiveram durante o processo de criação desta obra.
Além deles, também gostaria de agradecer a todos que apoiaram e ajudaram 
a divulgar o livro.
Sobre o autor
Luiz Eduardo Borges é engenheiro e analista de sistemas, com pós-graduação 
em Computação Gráfica pela Universidade do Estado do Rio de Janeiro 
(UERJ). Atua a quase duas décadas na área de informática, sob diversas 
formas.
Sumário
Parte I 10
Prefácio da primeira edição 11
Prefácio da segunda edição 12
Introdução 13
Características 13
Histórico 14
Versões 14
Executando programas 14
Tipagem dinâmica 15
Compilação e interpretação 16
Modo interativo 17
Ferramentas 18
Cultura 20
Sintaxe 22
Blocos 23
Objetos 25
Controle de fluxo 26
Laços 28
For 28
While 29
Tipos 31
Números 32
Texto 34
Listas 40
Tuplas 42
Outros tipos de sequências 44
Dicionários 45
Verdadeiro, falso e nulo 49
Operadores booleanos 50
Funções 52
Documentação 58
Exercícios I 60
Parte II 61
Módulos 62
Escopo de nomes 66
Pacotes 68
Biblioteca padrão 69
Matemática 69
Arquivos e I/O 72
Sistemas de arquivo 74
Arquivos temporários 75
Arquivos compactados 76
Arquivos de dados 77
Sistema operacional 78
Tempo 80
Expressões regulares 83
Bibliotecas de terceiros 85
Exceções 87
Introspecção 90
Inspect 91
Exercícios II 93
Parte III 94
Geradores 95
Programação funcional 97
Lambda 97
Mapeamento 98
Filtragem 99
Redução 100
Transposição 102
List Comprehension 103
Generator Expression 104
Exercícios III 105
Parte IV 106
Decoradores 107
Classes 109
Classes abertas 114
Herança simples 117
Herança múltipla 120
Propriedades 124
Sobrecarga de operadores 127
Coleções 128
Metaclasses 134
Classes base abstratas 136
Decoradores de classe 139
Testes automatizados 141
Exercícios IV 145
Parte V 146
Threads 147
Persistência 151
Serialização 151
ZODB 152
YAML 154
JSON 157
XML 158
DOM 160
SAX 161
ElementTree 162
Banco de dados 165
DBI 166
MySQL 166
SQLite 167
Firebird 169
PostgreSQL 170
Mapeamento objeto-relacional 177
Web 180
CherryPy 181
CherryTemplate 181
Cliente Web 184
MVC 185
Exercícios V 195
Parte VI 196
Processamento numérico 197
NumPy 197
Arranjos 197
Matrizes 200
SciPy 202
Matplotlib 204
Interface Gráfica 211
Arquitetura 211
PyGTK 213
wxPython 225
PyQt 232
Computação Gráfica 238
Matrizes versus vetores 238
Processamento de imagem 241
SVG 247
SVGFig 249
Imagens em três dimensões 252
VPython 254
PyOpenGL 260
Processamento distribuído 268
Objetos distribuídos 271
Performance 274
Empacotamento e distribuição 283
Exercícios VI 287
Apêndices 288
Integração com aplicativos 289
Blender 290
Game engine 299
GIMP 303
Inkscape 307
BrOffice.org 312
Integração com outras linguagens 317
Bibliotecas compartilhadas 317
Python -> C 319
C -> Python 321
Integração com .NET 323
Respostas dos exercícios I 329
Respostas dos exercícios II 333
Respostas dos exercícios III 340
Respostas dos exercícios IV 343
Respostas dos exercícios V 350
Respostas dos exercícios VI 354
Índice remissivo 357
10 Parte I
Parte I
Esta parte trata de conceitos básicos sobre a linguagem de programação 
Python, incluindo sintaxe, tipos, estruturas de controle, funções e 
documentação.
Conteúdo:
\u25aa Prefácio da primeira edição .
\u25aa Prefácio da segunda edição .
\u25aa Introdução .
\u25aa Sintaxe .
\u25aa Controle de fluxo .
\u25aa Laços .
\u25aa Tipos .
\u25aa Funções .
\u25aa Documentação .
\u25aa Exercícios I .
Prefácio da primeira edição 11
Prefácio da primeira edição
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 ativas de discussão 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.
12 Prefácio da segunda edição
Prefácio da segunda edição
Revisada e ampliada, esta edição traz algumas novidades, como a inclusão de 
vários recursos interessantes que foram incorporados na versão 2.6 do 
Python.
Vários assuntos já abordados na edição anterior foram expandidos, incluindo: 
orientação a objetos, rotinas matemáticas, interface gráfica, computação 
gráfica, acesso a bancos de dados e integração com aplicativos de código 
aberto.
Além disso, a formatação passou por algumas mudanças, visando facilitar a 
leitura em monitores e a impressão.
Entretanto, a maior parte das mudanças vieram com a revisão do texto, que 
agora se tornou compatível com a nova ortografia, tarefa facilitada pelo uso 
do BrOffice.org e suas ferramentas. Várias partes do texto foram ampliadas, 
capítulos mudaram de ordem, novos exemplos e diagramas foram 
acrescentados, com o objetivo de melhorar o encadeamento dos assuntos 
abordados.
Introdução 13
Introdução
Python1 é uma linguagem de altíssimo nível (em inglês, Very High Level 
Language) orientada a objeto, 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, 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