




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
A transformação do livro Python for Everybody em Python para Todos é o resultado árduo de um projeto do capítulo sobre Robótica e Automação do IEEEUFCG (RAS IEEE - UFCG), localizado em Campina Grande - Paraíba - Brasil. Secretário da RAS no ano de 2018 e graduando em Engenharia Elétrica pela UFCG, Arthur Carneiro foi o pioneiro a tornar este sonho realidade. Em seus estudos e pesquisas sobre a área, descobriu que Charles Severance, autor do Python for Everybody, é um grande encorajador de qualquer estudante, cientista ou profissional que tope o desafio de traduzir sua obra para outro idioma. Arthur aceitou a missão e recrutou o seu time. Em agosto de 2018, 7 pessoas foram convocadas para cumprir a nobre tarefa de tornar o trabalho de Severance acessível a milhares de leitores da Língua Portuguesa. Yuri Loia, aluno de mestrado, com conhecimento prévio em Python e fluência em inglês, foi nomeado como gerente do projeto.
Tipologia: Esquemas
1 / 260
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































Suporte Editorial : Elliott Hauser, Sue Blumenberg Cover Design: Toby Koening Tradução para Português (PT-BR): Antonio Marcos, Alysson Hyago, Andhré Carvalho, Arthur Carneiro, Caio Porto, Debora Nunes, Gabriel Araújo Medeiros, Giovana Oliveira, João Pedro Melquiades, Lara Sobral, Maysa Freire, Natã Macedo, Pyettra Feitosa, Victor Marinho, Vinicius França, Vinicius Formiga, Vitor Araujo, Yuri Loia
Copyright ~2009- Charles Severance.
This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Unported License. This license is available at
http://creativecommons.org/licenses/by-nc-sa/3.0/
Você pode ver o que o autor considera como uso comercial e não comercial do tra- balho assim como as excessões da licensa utilizando o apêndice na seção “Detalhes de Direitos Autorais”.
iv
computação. Como alternativa, eles tinham planos de se tornar economistas, ad- vogados, bibliotecários, biólogos, etc., mas que mas que queriam usar habilmente a tecnologia e programação nas suas áreas.
Dentro deste contexto, parecia que não havia um livro de Python orientado à análise de dados que se adequasse perfeitamente ao meu curso, e então decidi es- crever tal livro. Felizmente, em um encontro na faculdade três semanas antes de começar as férias e consequentemente o início deste projeto, o Professor Dr. Atul Prakash me mostrou o livro Think Python que ele havia usado para lecionar a disci- plina naquele semestre. É um livro bem escrito voltado para ciência da computação e focado em explicações breves, diretas e de fácil compreensão.
A estrutura geral do livro foi modificada para que o leitor possa começar a trabalhar com análise de dados o mais rápido possível, além de ter uma série de exemplos e exercícios desde o começo.
Os capítulos 2–10 são parecidos com os do Think Python , mas com grandes mu- danças. Exercícios com orientação aos números foram substituídos com outros exercícios orientados à análise de dados. Os tópicos são apresentados em uma sequência necessária para evoluir a construção de respostas cada vez mais sofisti- cadas. Alguns tópicos como try e except foram colocados mais a frente no capítulo de condicionalidade. Funções são levemente abordadas no início, até o momento em que seja necessário trabalhar com programas de maior nível de complexidade, ao invés de ser uma abstração inicial. Quase todas as funções que necessitam de definição pelo usuário foram removidas dos códigos de exemplos e exercícios que não sejam do capítulo 4. A palavra “recursividade”^1 não está presente neste livro de maneira alguma.
Nos capítulos 1 e 11–16, todo o material apresentado é inédito, com foco em apli- cações no mundo real e exemplos simples do uso de Python para a análise de dados, incluindo expressões comuns para pesquisa e análise, automatizando tarefas do seu computador, programação orientada a objetos, recuperando dados por meio da in- ternet, buscando-os em páginas da web, utilizando serviços online, analise de dados XML e JSON, criando e utilizando uma base de dados de Linguagem de Consulta Estruturada (Strutured Query Language - SQL) e visualizando de dados.
O objetivo final destas mudanças é estabelecer uma modificação do foco em ciên- cia da computação para um voltado para informática, incluindo em uma turma inicial de tecnologia apenas tópicos que possam ser úteis mesmo que os alunos não pretendam se tornar programadores profissionais.
Para aqueles que acharem este livro interessante e tiverem a motivação de explorar além dos limites dele, sugiro que deem uma olhada no livro Think Python do Allen B. Downey. Apesar disso, existem muitas interseções entre os dois livro, e para aqueles que desejam obter habilidades em áreas mais técnicas de programação e construção de algoritmos podem ter acesso a esta informação no livro Think Python. Dado que os livros possuem uma semelhança no estilo de escrita, a transição entre eles deverá ser fácil e rápida, com o mínimo de esforço.
Como proprietário dos direitos autorais do Think Python , Allen me permitiu mod- ificar a licença do material do livro dele para o material herdado neste livro, da licença GNU de Documen-tação Livre para a mais recente licença Creative Com- mons — licença compartilhável semelhante. Isso acarreta em uma mudança geral
(^1) Com exceção, é claro, desta linha.
v
na licença de documentação aberta, trocando de uma GFDL para uma CC-BY- SA (ex., Wikipedia). Utilizar a licença CC-BY-SA mantém a forte tradição de direito de cópia (copyleft) ao mesmo tempo em que o processo de novos autores reutilizarem este material como eles acharem melhor se torna mais direto.
Tenho o sentimento de que este livro servirá como um exemplo do porquê ma- teriais com uma compartilhação mais aberta são tão importantes para o futuro da educação, e também gostaria de agradecer ao Allen B. Downey e a gráfica da universidade de Cambridge pela sua decisão voltada para o futuro de tornar este livro disponível sob direitos autorais abertos. Espero que estejam satisfeitos com o resultado dos meus esforços e que você leitor esteja satisfeito com nossos esforços coletivos.
Gostaria de agradecer a Allen B. Downey e Lauren Cowles pela ajuda, paciência e orientação em lidar com e resolvendo ativamente problemas relacionados aos direitos autorais deste livro.
Charles Severance www.dr-chuck.com Ann Arbor, MI, USA 9 de Setembro 2013
Charles Severance é um professor associado na University of Michigan School of Information.
xiv CONTENTS
Por exemplo, leia os três primeiros parágrafos desse capítulo e me diga qual é a palavra mais usada e quantas vezes essa mesma palavra apareceu. Enquanto você era capaz de ler e entender as palavras em poucos segundos, contar o número de vezes que a palavra foi usada é quase que doloroso, pois esse não é o tipo de problema que mentes humanas foram feitas para resolver. Para um computador é o contrário, ler e entender o texto escrito num pedaço de papel é difícil, mas contar as palavras e dizer quantas vezes aquela palavra foi usada é muito fácil:
python words.py Enter file:words.txt de 8
Nosso “assistente pessoal de análises de informação” rapidamente nos diria que a palavra “de” foi usada oito vezes nos três primeiros parágrafos desse capítulo.
Esse mesmo fato de que computadores são bons em coisas que humanos não são é o motivo pelo qual você precisa se tornar hábil em falar a “linguagem computa- cional”. Uma vez que você aprende essa nova linguagem, você pode designar tarefas mundanas para seu parceiro (o computador), sobrando mais tempo para fazer as coisas as quais você é unicamente adequado. Você traz criatividade, intuição e inventividade a essa parceria.
1.1 Criatividade e motivação
Embora este livro não seja destinado a programadores profissionais, a programação profissional pode ser um trabalho muito gratificante, tanto financeiramente quanto pessoalmente. Construir programas úteis, elegantes e inteligentes para os outros usarem é uma atividade que exige muita criatividade. Seu computador ou Personal Digital Assistant (Assistente Pessoal Digital - PDA) geralmente contém diversos programas de diferentes grupos de programadores, cada um competindo por sua atenção e interesse. Eles fazem o melhor para atender às suas necessidades e lhe oferecer uma ótima experiência no processo. Em algumas situações, quando você escolhe um software, os programadores são diretamente compensados por sua escolha.
Se pensarmos nos programas como o resultado da criatividade de grupos de pro- gramadores, talvez a seguinte figura seja uma versão mais sensata de nosso PDA:
Pick Me!
Pick Me!
Pick Me!
Pick Me!
Pick Me!
Buy Me :)
Figure 1.2: Programmers Talking to You
Por enquanto, nossa principal motivação não é ganhar dinheiro ou agradar os usuários finais, mas sim, sermos mais produtivos no manuseio dos dados e das informações que encontraremos em nossas vidas. Quando você começar, você será
o programador e o usuário final de seus programas. À medida que você ganha experiência como programador e a programação lhe parece mais criativa, seus pensamentos podem se voltar ao desenvolvimento de programas para os outros.
1.2 Arquitetura de hardware de computadores
Antes de começarmos a aprender a linguagem que usamos para dar instruções a computadores para o desenvolvimento de software, precisamos saber um pouco sobre como computadores são construídos. Se você por acaso desmontasse seu computador ou celular, encontraria as seguintes partes:
Input and Output Devices
Software
Main Memory
Central Processing Unit
What Next?
Network
Secondary Memory
Figure 1.3: Hardware Architecture
As definições em alto nível dessas partes são as seguintes:
contá-la é aperfeiçoada quando se escreve e alguém avalia o seu trabalho dando um feedback sobre ele. Na área de programação, o nosso programa é a “história” e o problema que nós estamos querendo solucionar é a “ideia”.
A partir do momento que você aprende uma linguagem de programação como Python, você terá muito mais facilidade em aprender uma segunda linguagem de programação como Javascript ou C++. A nova linguagem poderá ter gramática e vocabulário diferentes, mas as habilidades para resolver problemas serão as mesmas através de todas elas. Você aprenderá o “vocabulário” e as “sentenças” de Python muito rápido. Será mais demorado para você aprender a escrever um programa coerente para solu- cionar um problema novo. Nós ensinamos programação assim como ensinamos a escrever. Nós começaremos lendo e explicando programas, depois nós escrevere- mos programas simples e logo após vamos passar para programas cada vez mais complexos conforme o tempo for passando. Em algum ponto você “pegará o gan- cho” e perceberá padrões por conta própria e verá mais claramente como pegar um problema e escrever um programa que o soluciona. Quando chegar nesse ponto, programar será um processo agradável e criativo. Começaremos com o vocabulário e a estrutura dos programas em Python. Seja paciente, pois os exemplos te lembrarão como foi ler pela primeira vez.
1.4 Palavras e Frases
Ao contrário das línguas humanas, o vocabulário da Python é realmente muito pequeno. Chamamos de “vocabulário” as palavras “reservadas”. Estas são palavras com um significado muito especial para Python. Quando ela as vê em um programa, elas tem um e apenas um significado para Python. Posteriormente, você escreverá programas com suas palavras próprias que chamará de variáveis. Você terá uma grande liberdade na escolha de nomes para as suas variáveis, mas não será possível utilizar as palavras reservadas do Python como um nome para uma variável.
Quando treinarmos um cão, usamos palavras especiais como “senta”, “fica” e “pega”. Quando você fala com um cão e não utiliza alguma destas palavras reser- vadas, eles encaram você com uma reação questionável em seu rosto até que você diga uma palavra reservada. por exemplo, se você diz, “Eu desejo que mais pessoas caminhassem para melhorar sua saúde”, o que a maioria dos cães ouve é, “blah blah blah caminhar blah blah blah blah.” Isso porque “caminhar” é uma palavra reservada na liguagem canina. Muitos podem sugerir que a linguagem entre seres humanos e gatos não tenha palavras reservadas^1.
As palavras reservadas na língua onde os seres humanos falam com Python incluem as seguintes:
and del global not with as elif if or yield assert else import pass (^1) http://xkcd.com/231/
break except in raise class finally is return continue for lambda try def from nonlocal while
É isto, e ao contrário de um cão, Python já está completamente treinado. Quando você diz “tente”, ele vai tentar toda vez que você falar, sem falhar. Nós iremos aprender essas palavras reservadas e como elas são usadas, mas por ora vamos nos concentrar no equivalente a “falar” Python (na linguagem entre homem e cachorro). A vantagem de pedir a Python para falar, é que podemos até mesmo dizer-lhe o que falar, dando-lhe uma mensagem em citações:
print('Hello world!')
E até escrevemos nossa primeira frase sintaticamente correta em Python. Nossa sentença começa com a palavra reservada print seguido por uma sequência de texto de nossa escolha entre aspas simples. Este conjunto de caracteres pode ser acompanhado de aspas simples ou duplas, sem distinção do funcionamento da função. Entretanto, é interessante utilizar-se de aspas duplas para os casos em que seja necessário utilizar as aspas simples como um apóstrofo.
1.5 Conversando com Python
Agora que nós já conhecemos uma palavra e uma simples sentença em Python, precisamos saber como iniciar uma conversa com ela para testar nossas novas habilidades linguísticas.
Antes de você poder conversar com Python, você deve primeiro instalar o software do Python no seu computador e aprender a como inicializá-lo. Isso possui detalhes demais para este capítulo, então eu sugiro que você consulte www.py4e.com onde eu tenho instruções detalhadas e screencasts sobre configuração e inicialização do Python nos sistemas Macintosh e Windows. Em certo ponto, você vai estar num terminal ou janela de comando e vai digitar python e o interpretador de Python vai começar a executar no modo interativo, onde aparece algo como o seguinte:
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01 : 54 : 25 ) [MSC v.1900 64 bit (AMD64)] on win Type "help", "copyright", "credits" or "license" for more information.
O >>> prompt é o modo como o interpretador da Python te pergunta, “O que você deseja que eu faça agora?” Ele está pronto para ter uma conversa com você. Tudo o que você tem que saber é como falar a sua linguagem.
Vamos dizer, por exemplo, que você não conheça nem as mais simples palavras ou sentenças da linguagem Python. Você pode querer usar a frase padrão que os astronautas usam quando aterrissam num planeta distante e tentam falar com os habitantes locais::