Ensine Seus Filhos A Programar
SUMÁRIO
Agradecimentos19
Introdução
O que é programar e por que isso é bom para seus
filhos?20
Por que as crianças devem aprender a programar? . . . . . . . . . . . . . . . . . . . 21
Programar é divertido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Saber programar é uma habilidade importante no trabalho . . . . . . . . . 22
Em que locais as crianças podem aprender a codificar? . . . . . . . . . . . . . . . . 22
Como usar este livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Explore! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trabalhe junto! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recursos online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programar = resolver problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
24
25
26
1
Básico sobre o PYTHON: Conheça o seu ambiente
27
Introdução ao Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1. Fazer download do Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Instalar o Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Testar o Python com um programa . . . . . . . . . . . . . . . . . . . . . . . . . . .
Criando programas em Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
31
31
32
Executando programas em Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2
Gráficos tartaruga: desenhando com o python
37
Nosso primeiro programa com a tartaruga . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Como o programa funciona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
O que o programa faz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
SUMÁRIO | 13
A tartaruga dando voltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
A tartaruga em círculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Acrescentando um toque de cor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Uma espiral de quatro cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Mudando as cores de fundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Uma variável para controlar tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3
números e variáveis: O Python faz a matemática
58
Variáveis: onde armazenamos nossas informações . . . . . . . . . . . . . . . . . . . . 59
Números e matemática em Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Números em Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operadores em Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Realizando operações matemáticas no shell Python . . . . . . . . . . . . . . . .
Erro de sintaxe: o que foi que você disse? . . . . . . . . . . . . . . . . . . . . . . . .
Variáveis no shell Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programando com operadores:
uma calculadora para pizzas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Strings: os verdadeiros caracteres em Python . . . . . . . . . . . . . . . . . . . . . . .
62
63
64
65
66
68
71
Aperfeiçoando nossa espiral colorida com strings . . . . . . . . . . . . . . . . . . . . . 74
Listas: reunindo informações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
O Python faz a sua lição de casa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4
os laços são divertidos (você pode repetir isso)
84
Criando seus próprios laços for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Usando um laço for para criar uma roseta com quatro círculos . . . . . . . 87
Modificando nosso laço for para criar uma roseta com seis círculos . . . 89
Aperfeiçoando nosso programa de roseta com dados de entrada do usuário 91
Laços de jogos e laços while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
A espiral da família . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Reunindo tudo: a espiral torna-se viral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
14 | SUMÁRIO
5
Condições (e se?)
110
Instruções if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Conheça os booleanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Operadores de comparação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Você não tem idade suficiente! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Instruções else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Polígonos ou rosetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Par ou ímpar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Instruções elif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Condições complexas: if, and, or, not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Mensagens secretas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Trabalhando com strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O valor do(s) caractere(s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nosso programa codificador/decodificador . . . . . . . . . . . . . . . . . . . . . .
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131
133
134
136
6
diversão e jogos com aleatoriedade: vá em frente,
faça sua jogada!
140
Um jogo de adivinhação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Espirais aleatórias coloridas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Escolha uma cor, qualquer cor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Obtendo coordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qual é o tamanho de nosso canvas? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pedra-Papel-Tesoura (Rock-Paper-Scissors) . . . . . . . . . . . . . . . . . . . . . . . .
146
147
149
152
154
Escolha uma carta, qualquer carta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Preparando o baralho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tirando uma carta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparando cartas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Continuar jogando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jogando dados: criando um jogo no estilo do Yahtzee . . . . . . . . . . . . . . . . .
157
159
160
162
164
165
Criando o jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Ordenando os dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
SUMÁRIO | 15
Testando os dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Caleidoscópio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7
Funções: Há um nome para isso
183
Organizando o código com funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Definindo random_spiral() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Chamando random_spiral() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Parâmetros: alimentando a sua função . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Carinhas felizes em posições aleatórias . . . . . . . . . . . . . . . . . . . . . . . . 189
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Retorno: o que você dá de volta é o que conta . . . . . . . . . . . . . . . . . . . . . . . 197
Retornando um valor a partir de uma função . . . . . . . . . . . . . . . . . . . . 198
Usando valores de retorno em um programa . . . . . . . . . . . . . . . . . . . . 199
Um toque de interação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Tratando eventos: TurtleDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Ouvindo eventos do teclado: ArrowDraw . . . . . . . . . . . . . . . . . . . . . . . . 206
Tratando eventos com parâmetros: ClickSpiral . . . . . . . . . . . . . . . . . . 209
Dando um passo a mais: ClickAndSmile . . . . . . . . . . . . . . . . . . . . . . . 212
ClickKaleidoscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
A função draw_kaleido() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A função draw_spiral() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Timers e animação: o que DISNEY faria?
215
216
217
219
222
GUI para todo lado com o Pygame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Desenhando um ponto com o Pygame . . . . . . . . . . . . . . . . . . . . . . . . . .
O que há de novo no Pygame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
As partes de um jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calcule o timing correto: mover, bater e voltar . . . . . . . . . . . . . . . . . . . . . .
224
228
229
233
Movendo uma carinha feliz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Fazendo a animação de uma carinha feliz com a classe Clock . . . . . . . 237
16 | SUMÁRIO
Fazendo uma carinha feliz bater em uma parede e voltar . . . . . . . . . . 240
Fazendo uma carinha feliz bater em quatro paredes e voltar . . . . . . . 247
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
9
interação com o usuário: entre no jogo
259
Adicionando interação: clicar e arrastar . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Clicando para desenhar pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Arrastando para pintar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Interação avançada: explosão de carinhas felizes . . . . . . . . . . . . . . . . . . . . 268
Sprites de carinhas felizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Criando sprites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Atualizando os sprites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Carinhas felizes maiores e menores . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SmileyPop versão 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
269
272
274
275
276
278
Detectando colisões e removendo sprites . . . . . . . . . . . . . . . . . . . . . . . . 279
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
10
Criação de jogos: codificando por diversão
286
Criando o esqueleto de um jogo: Smiley Pong versão 1.0 . . . . . . . . . . . . . . 287
Desenhando um tabuleiro e as partes do jogo . . . . . . . . . . . . . . . . . . . .
Mantendo uma pontuação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exibindo a pontuação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aumentando a dificuldade e finalizando o jogo: Smiley Pong versão 2.0 .
289
291
297
299
302
Fim de jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jogar novamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cada vez mais rápido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acrescentando novas funcionalidades: SmileyPop v2.0 . . . . . . . . . . . . . . .
302
303
304
307
310
Adicionando um som com o Pygame . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitorando e exibindo o progresso dos jogadores . . . . . . . . . . . . . . . .
Reunindo tudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
O que você aprendeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
310
312
316
320
SUMÁRIO | 17
A
INSTALAÇÃO do Python para WINDOWS, MAC e LINUX
324
Python para Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Download do programa de instalação . . . . . . . . . . . . . . . . . . . . . . . . . .
Execute o programa de instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teste o Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Python para Mac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
325
327
331
333
Download do programa de instalação . . . . . . . . . . . . . . . . . . . . . . . . . .
Execute o programa de instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teste o Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Python para Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
333
334
338
340
B
instalação DO PYGAME PARA WINDOWS, MAC E LINUX
343
Pygame para Mac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Python 2.7 e Pygame 1.9.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Pygame para Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Pygame para Python 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
C
Criando seus próprios módulos 355
Criando o módulo colorspiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Utilizando o módulo colorspiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Reutilizando o módulo colorspiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Recursos adicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Glossário361
18 | SUMÁRIO
Download

Sumário - Novatec