Você está na página 1de 9

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 7

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
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

Você também pode gostar