Allen B. Downey. Novatec

Documentos relacionados
Benjamin Bengfort Jenny Kim

Primeiros Passos com o Arduino

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Aprenda a Programar com Minecraft

A Arte de Escrever Programas Legíveis

Rodrigo de Barros Paes

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan

Criando Relatórios com PHP Pablo Dall Oglio

Novatec Editora Ltda. [2014].

Adrian Mouat. Novatec

Novatec Editora Ltda

Julia Elman e Mark Lavin. Novatec

Guia Mangá Circuitos Eletrônicos

Guia Mangá Motores elétricos

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

Primeiros Passos com o Arduino Massimo Banzi

Guia Prático Richard E. Silverman

Desenvolvendo Websites com PHP

PDF Explicado John Whitington

Christopher Duffy. Novatec

Arduino Básico Michael McRoberts

A Linguagem de Programação Go

Desenvolvimento de Grandes Aplicações Web

Primeiros Passos com o Raspberry Pi

Pete Goodliffe. Novatec

Design Centrado no Usuário

Jessey Bullock Jeff T. Parker

Guia Mangá Circuitos Eletrônicos

Padrões de Projeto em PHP

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

WordPress 3 Básico Stephanie Leary

Aravind Shenoy Anirudh Prabhu

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

Jonathan Stark Brian Jepson

Jonathan Weber e a equipe da LunaMetrics

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

Google Analytics Justin Cutroni

Harrison Kinsley Will McGugan

Introdução à Programação com Python

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

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

Introdução à Programação com Python

David Hows Peter Membrey Eelco Plugge

Ademir Cristiano Gabardo. Novatec

Allan Liska Geoffrey Stowe

Pramod J. Sadalage Martin Fowler

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

Simon Holmes. Novatec

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

Novatec Editora Ltda

Crie Seu Próprio Site

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

Brandon Rhodes John Goerzen

1.1 o que é um algoritmo... 6

Linguagens de Programação

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

As Leis Fundamentais do Projeto de Software

Programação Estruturada Orientada a Objetos

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

Josh Lockhart. Novatec

André Gugliotti. Novatec

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

Padrões JavaScript Stoyan Stefanov

CONTEÚDO PROGRAMÁTICO

Plano de Aula - Lógica de Programação - cód Horas/Aula

Empresa. Dave Gray. Novatec. com Thomas Vander Wal

Ademir C. Gabardo. Novatec

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

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Josh Lockhart. Novatec

Criando Relatórios com PHP

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

Desenvolvimento de Grandes Aplicações Web

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

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

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Wilson Moraes Góes. Novatec

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Hélio Engholm Jr. Novatec

Johnny Long Bill Gardner Justin Brown

jquery Cookbook Comunidade de Desenvolvedores jquery

Primeiros Passos com o Netduino

Sumário. 1 Introdução 1. Parte um: A linguagem Objective-C 2 Programação com Objective-C 7. 3 Classes, objetos e métodos 27

CONTEÚDO PROGRAMÁTICO

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

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

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

A Arte de Escrever Programas Legíveis

Requisitos de sistemas

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

Transcrição:

Allen B. Downey Novatec

Authorized Portuguese translation of the English edition of Think Python, 2nd Edition ISBN 9781491939369 2016 Allen B. Downey. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Think Python, 2nd Edition ISBN 9781491939369 2016 Allen B. Downey. 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. 2016. 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 PY20160606 Tradução: Sheila Gomes Revisão gramatical: Smirna Cavalheiro Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila A. Yoshimatsu ISBN: 978-85-7522-508-0 Histórico de impressões: Junho/2016 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 Capítulo 1 A jornada do programa... 25 O que é um programa?... 25 Execução do Python... 26 O primeiro programa... 27 Operadores aritméticos... 28 Valores e tipos... 29 Linguagens formais e naturais... 30 Depuração... 32 Glossário... 33 Exercícios... 35 Capítulo 2 Variáveis, expressões e instruções... 37 Instruções de atribuição... 37 Nomes de variáveis... 38 Expressões e instruções... 39 Modo script... 39 Ordem das operações...41 Operações com strings...41 Comentários... 42 Depuração... 43 Glossário... 44 Exercícios... 46 Capítulo 3 Funções... 47 Chamada de função... 47 Funções matemáticas... 48 Composição... 49 Como acrescentar novas funções... 50 Uso e definições...51 5

6 Pense em Python Fluxo de execução... 52 Parâmetros e argumentos... 53 As variáveis e os parâmetros são locais... 54 Diagrama da pilha... 55 Funções com resultado e funções nulas... 56 Por que funções?... 57 Depuração... 57 Glossário... 58 Exercícios... 60 Capítulo 4 Estudo de caso: projeto de interface... 63 Módulo turtle... 63 Repetição simples... 65 Exercícios... 66 Encapsulamento... 67 Generalização... 67 Projeto da interface... 68 Refatoração... 70 Um plano de desenvolvimento...71 docstring...71 Depuração... 72 Glossário... 73 Exercícios...74 Capítulo 5 Condicionais e recursividade... 76 Divisão pelo piso e módulo... 76 Expressões booleanas... 77 Operadores lógicos... 78 Execução condicional... 78 Execução alternativa... 79 Condicionais encadeadas... 79 Condicionais aninhadas... 80 Recursividade...81 Diagramas da pilha para funções recursivas... 83 Recursividade infinita... 83 Entrada de teclado... 84 Depuração... 85 Glossário... 87 Exercícios... 88

Sumário Capítulo 6 Funções com resultado... 92 Valores de retorno... 92 Desenvolvimento incremental... 94 Composição... 96 Funções booleanas... 97 Mais recursividade... 98 Salto de fé...100 Mais um exemplo... 101 Verificação de tipos... 101 Depuração...103 Glossário...104 Exercícios...105 Capítulo 7 Iteração... 107 Reatribuição...107 Atualização de variáveis...108 Instrução while...109 break... 110 Raízes quadradas...111 Algoritmos... 113 Depuração... 114 Glossário... 115 Exercícios... 115 Capítulo 8 Strings... 118 Uma string é uma sequência... 118 len... 119 Travessia com loop for...120 Fatiamento de strings... 121 Strings são imutáveis...122 Buscando...123 Loop e contagem...123 Métodos de strings...124 Operador in...125 Comparação de strings...126 Depuração...126 Glossário...128 Exercícios...130 7

8 Pense em Python Capítulo 9 Estudo de caso: jogos de palavras... 133 Leitura de listas de palavras...133 Exercícios...134 Busca...136 Loop com índices...137 Depuração...139 Glossário...140 Exercícios...140 Capítulo 10 Listas... 142 Uma lista é uma sequência...142 Listas são mutáveis...143 Atravessando uma lista...144 Operações com listas...145 Fatias de listas...145 Métodos de listas...146 Mapeamento, filtragem e redução... 147 Como excluir elementos...148 Listas e strings...149 Objetos e valores...150 Alias... 151 Argumentos de listas...152 Depuração...154 Glossário...156 Exercícios...157 Capítulo 11 Dicionários... 161 Um dicionário é um mapeamento... 161 Um dicionário como uma coleção de contadores...163 Loop e dicionários...165 Busca reversa...165 Dicionários e listas...167 Memos...169 Variáveis globais...170 Depuração...172 Glossário...173 Exercícios... 175 Capítulo 12 Tuplas... 178 Tuplas são imutáveis...178 Atribuição de tuplas...180

Sumário 9 Tuplas como valores de retorno... 181 Tuplas com argumentos de comprimento variável... 181 Listas e tuplas...182 Dicionários e tuplas...184 Sequências de sequências...186 Depuração...187 Glossário...188 Exercícios...189 Capítulo 13 Estudo de caso: seleção de estrutura de dados... 192 Análise de frequência de palavras...192 Números aleatórios...193 Histograma de palavras...195 Palavras mais comuns...196 Parâmetros opcionais...197 Subtração de dicionário...198 Palavras aleatórias...199 Análise de Markov... 200 Estruturas de dados... 202 Depuração... 203 Glossário... 205 Exercícios... 206 Capítulo 14 Arquivos... 207 Persistência... 207 Leitura e escrita... 208 Operador de formatação... 208 Nomes de arquivo e caminhos...210 Captura de exceções...211 Bancos de dados... 212 Usando o Pickle... 213 Pipes... 214 Módulos de escrita...216 Depuração... 217 Glossário... 218 Exercícios... 219 Capítulo 15 Classes e objetos... 221 Tipos definidos pelos programadores... 221 Atributos... 222 Retângulos...224

10 Pense em Python Instâncias como valores de retorno...225 Objetos são mutáveis...225 Cópia... 226 Depuração... 228 Glossário... 229 Exercícios... 230 Capítulo 16 Classes e funções... 231 Time... 231 Funções puras...232 Modificadores...233 Prototipação versus planejamento...234 Depuração... 236 Glossário...237 Exercícios... 238 Capítulo 17 Classes e métodos... 240 Recursos orientados a objeto... 240 Exibição de objetos... 241 Outro exemplo...243 Um exemplo mais complicado... 244 Método init... 244 Método str...245 Sobrecarga de operadores... 246 Despacho por tipo...247 Polimorfismo... 248 Interface e implementação...249 Depuração... 250 Glossário... 251 Exercícios...252 Capítulo 18 Herança... 253 Objetos Card...253 Atributos de classe...255 Comparação de cartas... 256 Baralhos...257 Exibição do baralho... 258 Adição, remoção, embaralhamento e classificação... 258 Herança...259 Diagramas de classe...261 Encapsulamento de dados... 262

Sumário 11 Depuração... 264 Glossário... 265 Exercícios...267 Capítulo 19 Extra... 270 Expressões condicionais...270 Abrangência de listas... 271 Expressões geradoras...273 any e all...274 Conjuntos...274 Contadores...276 defaultdict... 277 Tuplas nomeadas... 279 Reunindo argumentos de palavra-chave... 280 Glossário... 282 Exercícios... 282 Capítulo 20 Depuração... 284 Erros de sintaxe... 284 Continuo fazendo alterações e não faz nenhuma diferença... 286 Erros de tempo de execução... 286 Meu programa não faz nada... 286 Meu programa fica suspenso... 287 Quando executo o programa recebo uma exceção... 288 Acrescentei tantas instruções print que fui inundado pelos resultados... 290 Erros semânticos... 291 Meu programa não funciona... 291 Tenho uma baita expressão cabeluda e ela não faz o que espero... 292 Tenho uma função que não retorna o que espero... 293 Estou perdido e preciso de ajuda... 293 Sério, preciso mesmo de ajuda... 293 Capítulo 21 Análise de algoritmos... 295 Ordem de crescimento... 296 Análise de operações básicas do Python... 299 Análise de algoritmos de busca... 301 Hashtables... 302 Glossário... 306 Sobre o autor... 308