Livro de Pense em Python.pdf

(1645 KB) Pobierz
Prefácio
A estranha história deste livro
Em janeiro de 1999 eu me preparava para dar aula a uma turma de programação
introdutória em Java. Já tinha dado esse curso três vezes e estava ficando frustrado. O
índice de aprovação era muito baixo e mesmo entre os alunos aprovados, o nível geral das
notas era baixo demais.
Um dos problemas que eu via eram os livros. Eram muito grandes, com detalhes
desnecessários sobre o Java, e não havia orientação de alto nível sobre como programar. E
todos eles sofriam do efeito alçapão: no início era fácil, os alunos iam aprendendo aos
poucos, e lá pelo Capítulo 5, perdiam o chão. Era muito material novo, muito rápido, e
eles acabavam engatinhando no resto do semestre.
Duas semanas antes do primeiro dia de aula, eu decidi escrever meu próprio livro. Meus
objetivos eram:
que o livro fosse curto. Era melhor os alunos lerem 10 páginas que não lerem 50.
abordar o vocabulário com cuidado. Tentei minimizar o jargão e definir cada termo
no momento do primeiro uso.
construir o aprendizado passo a passo. Para evitar alçapões, dividi os tópicos mais
difíceis e em uma série de etapas menores.
que o conteúdo fosse concentrado em programar mesmo, não na linguagem de
programação. Selecionei um subconjunto mínimo útil do Java e omiti o resto.
Eu precisava de um título, então, por capricho, decidi chamá-lo de
Pense como um
cientista da computação.
A minha primeira versão era apenas um esboço, mas funcionou. Os alunos liam e
entendiam o suficiente para podermos usar o tempo de aula para os tópicos difíceis,
interessantes e (o mais importante) para permitir que os alunos praticassem.
Lancei o livro sob uma Licença de Documentação Livre GNU, que permite aos usuários
copiar, modificar e distribuir o livro.
E o que aconteceu em seguida foi legal. Jeff Elkner, um professor de ensino médio na
Virgínia adotou meu livro e o traduziu para Python. Ele me enviou uma cópia de sua
tradução e tive a experiência excepcional de aprender Python lendo o meu próprio livro.
Com a editora Green Tea, publiquei a primeira versão em Python em 2001.
Em 2003 comecei a trabalhar no Olin College e a ensinar Python pela primeira vez na
vida. O contraste com o Java era notável. Os estudantes tinham menos dificuldades,
aprendiam mais, trabalhavam em projetos mais interessantes e geralmente se divertiam
muito mais.
Desde então continuei a desenvolver o livro, corrigindo erros, melhorando alguns
exemplos e acrescentando material, especialmente exercícios.
O resultado está aqui, agora com o título menos grandioso de
Pense em Python.
Fiz
algumas alterações:
Acrescentei uma seção sobre depuração (debugging) no fim de cada capítulo. Essas
seções apresentam técnicas gerais para encontrar e evitar bugs (erros de
programação) e avisos sobre armadilhas do Python.
Acrescentei exercícios, incluindo testes curtos de compreensão e alguns projetos
substanciais. A maior parte dos exercícios tem um link para a minha solução.
Acrescentei uma série de estudos de caso – exemplos mais longos com exercícios,
soluções e discussões.
Expandi a discussão sobre planos de desenvolvimento de programas e padrões de
design básicos.
Acrescentei apêndices sobre depuração e análise de algoritmos.
Esta edição de Pense em Python tem as seguintes novidades:
O livro e todo o código de apoio foram atualizados para o Python 3.
Acrescentei algumas seções e mais detalhes sobre a web, para ajudar os principiantes
a executar o Python em um navegador, e não ter que lidar com a instalação do
programa até que seja necessário.
Para “Módulo turtle” na página 63 troquei meu próprio pacote gráfico turtle,
chamado Swampy, para um módulo Python mais padronizado, turtle, que é mais fácil
de instalar e mais eficiente.
Acrescentei um novo capítulo chamado “Extra”, que introduz alguns recursos
adicionais do Python, não estritamente necessários, mas às vezes práticos.
Espero que goste de trabalhar com este livro, e que ele o ajude a aprender a programar e
pensar, pelo menos um pouquinho, como um cientista da computação.
Allen B. Downey
Olin College
Convenções usadas neste livro
As seguintes convenções tipográficas são usadas neste livro:
Itálico
Indica novos termos, URLs, endereços de email, nomes de arquivo e extensões de arquivo.
Negrito
Indica termos definidos no glossário no final de capítulo.
Monoespaçado
Usada para código de programa, bem como dentro de parágrafos para referir-se a
elementos do programa, como nomes de variáveis ou de funções, bancos de dados, tipos
de dados, variáveis de ambiente, instruções e palavras-chave.
Monoespaçado negrito
Exibe comandos ou outros textos que devem ser digitados literalmente pelo usuário.
Monoespaçado itálico
Exibe textos que devem ser substituídos por valores fornecidos pelos usuários ou por
valores determinados pelo contexto.
Uso do código dos exemplos (de acordo com a política da
O’Reilly)
Há material suplementar (exemplos de código, exercícios etc.) disponível para baixar em
http://www.greenteapress.com/thinkpython2/code.
Este livro serve para ajudar você a fazer o que precisa. Em geral, se o livro oferece
exemplos de código, você pode usá-los nos seus programas e documentação. Não é
preciso entrar em contato conosco para pedir permissão, a menos que esteja reproduzindo
uma porção significativa do código. Por exemplo, escrever um programa que use vários
pedaços de código deste livro não exige permissão. Vender ou distribuir um CD-ROM de
exemplos dos livros da O’Reilly exige permissão. Responder a uma pergunta citando este
livro e reproduzindo exemplos de código não exige permissão. Incorporar uma quantidade
significativa de exemplos de código deste livro na documentação do seu produto exige
permissão.
Agradecemos, mas não exigimos, crédito. O crédito normalmente inclui o título, o autor, a
editora e o ISBN. Por exemplo: “Pense
em Python,
2ª edição, por Allen B. Downey
(O’Reilly). Copyright 2016 Allen Downey, 978-1-4919-3936-9.”
Se acreditar que o seu uso dos exemplos de código não se ajusta à permissão dada
anteriormente, fique à vontade para entrar em contato conosco pelo email
permissions@oreilly.com
.
Como entrar em contato conosco
Envie comentários e dúvidas sobre este livro à editora, escrevendo para:
novatec@novatec.com.br
.
Temos uma página web para este livro na qual incluímos erratas, exemplos e quaisquer
outras informações adicionais.
Página da edição em português
http://www.novatec.com.br/catalogo/7522508-pense-em-python
Página da edição original em inglês
http://bit.ly/think-python_2E
Para obter mais informações sobre os livros da Novatec, acesse nosso site em
http://www.novatec.com.br.
Agradecimentos
Muito obrigado a Jeff Elkner, que traduziu meu livro de Java para o Python, o que deu
início a este projeto e me apresentou ao que acabou sendo a minha linguagem favorita.
Agradeço também a Chris Meyers, que contribuiu em várias seções do
Pense como um
cientista da computação.
Obrigado à Fundação do Software Livre pelo desenvolvimento da Licença de
Documentação Livre GNU, que me ajudou a tornar possível a colaboração com Jeff e
Chris, e ao Creative Commons pela licença que estou usando agora.
Obrigado aos editores do Lulu, que trabalharam no
Pense como um cientista da
computação.
Obrigado aos editores da O’Reilly Media, que trabalharam no Pense em Python.
Obrigado a todos os estudantes que trabalharam com versões anteriores deste livro e a
todos os contribuidores (listados a seguir) que enviaram correções e sugestões.
Lista de contribuidores
Mais de cem leitores perspicazes e atentos enviaram sugestões e correções nos últimos
anos. Suas contribuições e entusiasmo por este projeto foram inestimáveis.
Se tiver alguma sugestão ou correção, por favor, envie um email a
feedback@thinkpython.com
. Se eu fizer alguma alteração baseada no seu comentário,
acrescentarei seu nome à lista de contribuidores (a menos que você peça para eu omitir a
informação).
Se você incluir pelo menos uma parte da frase onde o erro aparece, é mais fácil para eu
procurá-lo. Também pode ser o número da página e seção, mas aí é um pouquinho mais
difícil de encontrar o erro a ser corrigido. Obrigado!
Lloyd Hugh Allen enviou uma correção da Seção 8.4.
Yvon Boulianne enviou a correção de um erro semântico no Capítulo 5.
Fred Bremmer enviou uma correção da Seção 2.1.
Jonah Cohen escreveu os scripts em Perl para converter a fonte de LaTeX deste livro
para o belo HTML.
Michael Conlon enviou uma correção gramatical do Capítulo 2 e uma melhoria no
estilo do Capítulo 1, além de iniciar a discussão sobre os aspectos técnicos de
Zgłoś jeśli naruszono regulamin