Kenneth Reitz Tanya Schlusser

Documentos relacionados
Benjamin Bengfort Jenny Kim

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Primeiros Passos com o Arduino

Adrian Mouat. Novatec

Primeiros Passos com o Arduino Massimo Banzi

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan

A Arte de Escrever Programas Legíveis

Guia Prático Richard E. Silverman

Primeiros Passos com o Raspberry Pi

Novatec Editora Ltda

Design Centrado no Usuário

Blender 3D jogos e animações interativas Allan Brito

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec

Julia Elman e Mark Lavin. Novatec

Criando Relatórios com PHP Pablo Dall Oglio

Rodrigo de Barros Paes

Jonathan Weber e a equipe da LunaMetrics

Jonathan Stark Brian Jepson

Guia Mangá Circuitos Eletrônicos

Arduino Básico Michael McRoberts

PDF Explicado John Whitington

Aprenda a Programar com Minecraft

Novatec Editora Ltda. [2014].

Guia Mangá Motores elétricos

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec

Desenvolvimento de Grandes Aplicações Web

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec

Ademir Cristiano Gabardo. Novatec

Jessey Bullock Jeff T. Parker

WordPress 3 Básico Stephanie Leary

Desenvolvendo Websites com PHP

Google Analytics Justin Cutroni

Padrões de Projeto em PHP

Aprendendo Programação. ios. Alasdair Allan. Novatec

Aravind Shenoy Anirudh Prabhu

Christopher Duffy. Novatec

Pete Goodliffe. Novatec

Luiz Eduardo Borges. Novatec

A Arte de SEO. Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle. Novatec

Equipes de Software. Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas. Brian W. Fitzpatrick Ben Collins-Sussman

Novatec Editora Ltda

Guia Mangá Circuitos Eletrônicos

Simon Holmes. Novatec

Brandon Rhodes John Goerzen

Harrison Kinsley Will McGugan

Allan Liska Geoffrey Stowe

Josh Lockhart. Novatec

David Hows Peter Membrey Eelco Plugge

Ademir C. Gabardo. Novatec

Aprendendo Cocoa com Objective-C Paris Buttfield-Addison Jonathon Manning

Introdução à Programação com Python

As Leis Fundamentais do Projeto de Software

Pramod J. Sadalage Martin Fowler

Josh Lockhart. Novatec

Desenvolvimento de Grandes Aplicações Web

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

Introdução à Programação com Python

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

3 a edição. Walter Cybis Adriana Holtz Betiol Richard Faust. Novatec

Crie Seu Próprio Site

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

Josh Pauli Revisão técnica Scott White. Novatec

Ricardo R. Lecheta. Novatec

Ryan Mitchell. Novatec

Padrões JavaScript Stoyan Stefanov

Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Mineração de dados da web social Matthew A. Russell

Primeiros Passos com o Netduino

Hélio Engholm Jr. Novatec

Daniel Moreno. Novatec

jquery Cookbook Comunidade de Desenvolvedores jquery

Empresa. Dave Gray. Novatec. com Thomas Vander Wal

Ricardo R. Lecheta. Novatec

Defenda sua base com circuitos simples, Arduino e Raspberry Pi

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

André Gugliotti. Novatec

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec

Karl Matthias Sean P. Kane

Criando Relatórios com PHP

Wilson Moraes Góes. Novatec

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

Daniel Moreno. Novatec

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Programando o Android Zigurd Mednieks, Laird Dornin, G. Blake Meike e Masumi Nakamura

Excel Avançado. 2ª Edição. Antonio Fernando Cinto Wilson Moraes Góes. Novatec

Programando o Android

Adrian Mejia. Novatec

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. Samuel Henrique Bucke Brito. Novatec

Criando Aplicações Gráficas com PHP

Keith Wood. Apresentação de Dave Methvin. Novatec

Ricardo Lino Olonca. Novatec

Desenvolvendo Websites com PHP

Introdução à linguagem Python. Slides extras

Justin Seitz. Novatec

Ademir C. Gabardo. Novatec

Transcrição:

Kenneth Reitz Tanya Schlusser Novatec

Authorized Portuguese translation of the English edition of The Hitchhiker s Guide to Python ISBN 9781491933176 2016 Kenneth Reitz, Tanya Schlusser. This translation is published and sold by permission of O'Reilly Media, Inc., the owner of all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra The Hitchhiker s Guide to Python ISBN 9781491933176 2016 Kenneth Reitz, Tanya Schlusser. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. Novatec Editora Ltda. 2017. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Tradução: Aldir José Coelho Corrêa da Silva Revisão gramatical: Priscila A. Yoshimatsu Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-541-7 Histórico de impressões: Fevereiro/2017 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 Email: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

Sumário Prefácio...13 Parte I Introdução... 16 Capítulo 1 Selecionando um interpretador...17 Python 2 versus Python 3...17 Recomendações...18 Então ficamos com o 3?...18 Implementações...19 CPython...19 Stackless...20 PyPy...20 Jython...20 IronPython...21 PythonNet...21 Skulpt...21 MicroPython... 22 Capítulo 2 Instalando Python apropriadamente...23 Instalando Python no Mac OS X... 23 Setuptools e pip... 25 virtualenv...26 Instalando Python no Linux...26 Setuptools e pip...27 Ferramentas de desenvolvimento... 28 virtualenv...29 Instalando Python no Windows...30 Setuptools e pip...32 virtualenv...33 Redistribuições comerciais de Python...34 7

8 O Guia do Mochileiro Python Capítulo 3 Seu ambiente de desenvolvimento...37 Editores de texto...38 Sublime Text...38 Vim...39 Emacs...41 TextMate...42 Atom...43 Code...43 IDEs... 44 PyCharm/IntelliJ IDEA...45 Aptana Studio 3/Eclipse + LiClipse + PyDev...45 WingIDE... 46 Spyder... 46 NINJA-IDE...47 Komodo IDE...47 Eric (Eric Python IDE)...48 Visual Studio...48 Ferramentas interativas melhoradas...49 IDLE...49 IPython...50 bpython...50 Ferramentas de isolamento...51 Ambientes virtuais...51 pyenv...53 Autoenv...54 virtualenvwrapper...54 Buildout...56 conda...56 Docker...57 Parte II Mãos à obra... 59 Capítulo 4 Escrevendo códigos incríveis... 60 Estilo de código... 60 PEP 8...61 PEP 20 (também conhecida como o Zen do Python)...62 Recomendações gerais...63 Convenções...71 Idiomas...73 Armadilhas comuns...78

Sumário 9 Estruturando seu projeto...81 Módulos...82 Pacotes... 86 Programação orientada a objetos...87 Decorators...89 Tipificação dinâmica...91 Tipos mutáveis e imutáveis...92 Vendorizando dependências... 94 Testando seu código... 94 Fundamentos da execução de testes...97 Exemplos...100 Outras ferramentas populares...104 Documentação...107 Documentação do projeto...107 Publicação do projeto...107 Docstrings versus comentários de bloco...109 Logging...109 Logging em uma biblioteca...110 Logging em um aplicativo...111 Selecionando uma licença... 114 Licenças upstream... 114 Opções... 114 Recursos sobre licenciamento...116 Capítulo 5 Lendo códigos incríveis... 117 Características comuns...118 HowDoI...119 Lendo um script de arquivo único...119 Exemplos da estrutura do HowDoI...123 Exemplos do estilo do HowDoI...124 Diamond...127 Lendo um aplicativo maior...127 Exemplos da estrutura do Diamond...134 Exemplo de estilo do projeto Diamond...138 Tablib... 141 Lendo uma biblioteca pequena... 141 Exemplos da estrutura do Tablib...146 Exemplos de estilo do Tablib...155 Requests...158 Lendo uma biblioteca maior...158 Exemplos da estrutura do Requests...163

10 O Guia do Mochileiro Python Exemplos de estilo do Requests...168 Werkzeug... 174 Lendo o código de um kit de ferramentas...175 Exemplos de estilo do Werkzeug...185 Exemplos da estrutura do Werkzeug...186 Flask...194 Lendo o código de um framework...194 Exemplos de estilo do Flask...201 Exemplos de estrutura do Flask...203 Capítulo 6 Distribuindo códigos incríveis...207 Vocabulário e conceitos úteis...208 Empacotando seu código...209 Conda...210 PyPI...210 Congelando seu código... 214 PyInstaller...216 cx_freeze...218 py2app...220 py2exe...220 bbfreeze...221 Fazendo o empacotamento de Linux-built distributions...222 Arquivos ZIP executáveis...224 Parte III Guia de cenários... 227 Capítulo 7 Interação com o usuário...228 Notebooks Jupyter...228 Aplicativos de linha de comando...229 Aplicativos de GUI...239 Bibliotecas de widgets...239 Desenvolvimento de jogos...245 Aplicativos web...246 Frameworks/microframeworks web...247 Engines de templates web...250 Implantação na web...257 Capítulo 8 Gerenciamento e melhoria do código...261 Integração contínua...261 Administração de sistemas...262 Automação de servidores...265

Sumário 11 Monitoramento de sistemas e tarefas...270 Velocidade... 274 Interagindo com bibliotecas C/C++/Fortran...285 Capítulo 9 Interfaces de software...291 Clientes web...292 APIs Web...293 Serialização de dados...299 Sistemas distribuídos...302 Rede...302 Criptografia...309 Capítulo 10 Manipulação de dados... 316 Aplicativos científicos... 317 Manipulação e mineração de texto...322 Ferramentas de strings da biblioteca-padrão Python...322 Manipulação de imagens...326 Capítulo 11 Persistência de dados...329 Arquivos estruturados...329 Bibliotecas de banco de dados...330 Apêndice A Notas adicionais...348 Comunidade Python...348 BDFL...348 Python Software Foundation...348 PEPs...348 Aprendendo Python...350 Iniciantes...350 Intermediário...353 Avançado...353 Para engenheiros e cientistas...354 Tópicos variados...354 Referências...355 Documentação...356 Notícias...357