Buscar

Apostila - Linguagem Python 2 7

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LINGUAGEM PHYTON 2.7 1 
 
 
Linguagem Phyton 2.7 
 
 
 
 
LINGUAGEM PHYTON 2.7 2 
Linguagem Phyton 2.7 
 
1. Ciência de dados 
 
1.1 Data Science 
 
Nos dias de hoje, ter acesso a dados, informações e, acima de tudo, ao conhecimento 
faz com que empresas tenham vantagem competitiva num mercado totalmente 
mutável e altamente concorrente. 
Data Science ou Ciência de Dados permite obter acesso a estes dados de forma a 
interpretá-los do melhor modo possível, a fim de se obter vantagem competitiva. 
De acordo com Grus (2016), Data Science tem sido chamada de “o emprego mais sexy 
do Século 21”. Provavelmente por alguém que nunca tenha visitado um quartel do 
corpo de bombeiros. Segundo o mesmo autor, Data Science é um campo em evidência 
e está em alta; não requer muita investigação para encontrar prognósticos de analista 
de que nos próximos dez anos serão necessários bilhões e bilhões de cientistas de 
dados a mais do que existem nos dias de hoje. 
Uma definição definitiva acerca de Data Science ainda é muito difícil de encontrar. A 
figura a seguir tenta expressar o entendimento sobre Data Science. 
 
 
 
LINGUAGEM PHYTON 2.7 3 
 
Data Science – Onde se encontra? 
 
De acordo com Mueller (2016), a ciência de dados se refere à exploração e à análise 
de dados disponíveis objetivando o desenvolvimento e a compreensão a respeito deles 
para se extrair o conhecimento para a formulação de ações e as tomadas de decisão, 
visando obter vantagem competitiva. 
A Ciência de Dados representa a interseção de três esferas cognitivas do 
conhecimento: habilidade de hacker, conhecimento de estatística e matemática e 
competências significativas. (MARTINS, 2015) 
A habilidade de hacker e o conhecimento em estatística e matemática se referem à 
especialidade de aprendizagem de máquina, ligada à inteligência computacional. A 
habilidade de hacker e a competência significativa se referem à zona de perigo. Por 
fim, a competência significativa e o conhecimento de estatística e matemática se 
referem à pesquisa tradicional. 
Mesmo ainda sendo muito difícil de encontrarmos uma definição realmente concreta 
acerca de Data Science, o importante é saber como fazer e o que fazer com os dados 
que serão encontrados para se tirar alguma vantagem disso. 
 
 
LINGUAGEM PHYTON 2.7 4 
 
1.2 Data Sciencester 
 
Martins (2015) 15) define Data Sciencester como uma rede social especializada em 
assuntos de Data Science, própria para cientistas de dados que apesar de ser 
específica para cientista de dados, não possui sua própria atividade de Data Science, 
pois não é a sua origem. (GRUS, 2016) 
De um modo geral, esta “rede social” ainda se encontra muito insipiente e precisando 
ser mais bem configurada e formalizada para que se possa ter um aprendizado sólido 
e um melhor aproveitamento daquilo que a ciência de dados pode proporcionar para 
transformar dados, informações e conhecimento sobre vantagem competitiva para as 
empresas. (PROVOST & FAWCETT, 2013) 
 
 
1.3 Cientista de dados 
 
Entende-se por cientista de dados o profissional capaz de processar, analisar e 
perceber dados a fim de obter uma melhor tomada de decisão. (PROVOST; FAWCETT, 
2013) 
De acordo com Davenport & Patil (2012), cientistas de dados são uma nova geração 
de especialistas analíticos que têm as habilidades técnicas para resolver problemas 
complexos. 
 
 
 
LINGUAGEM PHYTON 2.7 5 
 
Cientista de dados 
 
O cientista de dados tem que apresentar (além da sua especialidade) criatividade, 
curiosidade e conhecimento de mundo. Com isso, será capaz de traduzir dados em 
prol de certa tomada de decisão. 
 
Portanto, os cientistas de dados são, de certa forma, parte matemáticos, 
parte cientistas da computação e parte analistas de tendências, objetivando obter 
vantagem competitiva com foco no negócio das empresas. 
 
 
 
 
1.4 Data Science para negócios 
 
Hoje em dia, qualquer organização tem seu negócio globalizado e já faz parte do 
mercado de dados e informações digitais, pois a internet está presente na vida de 
qualquer empresa, independentemente do seu setor de negócios. 
 
 
LINGUAGEM PHYTON 2.7 6 
Na internet, os dados apresentam fluxos mais rápidos, tomando uma proporção 
gigantesca a necessidade de seu efetivo armazenamento. Isto porque o mundo gera 
informação exponencial e ao mesmo tempo, todos querem uma fatia desse bolo ou, 
nesse caso, dado. É preciso saber que os dados permitem que empresas entendam 
seus clientes, produtos e processos muito melhor, a fim de obter, portanto, vantagem 
competitiva. 
Dessa forma a Ciência de Dados difere das análises estatísticas e da Ciência da 
Computação em seu método, pois aplica aos dados coletados princípios científicos. A 
necessidade crescente desta nova abordagem, portanto, relaciona o Big Data ao Cloud 
Computing, o qual demanda o uso de diferentes tecnologias à análise estatística e de 
dados, propriamente dita. 
Para Martins (2015), a análise de dados tradicional das empresas tem sido tipicamente 
implantada para explicar tendências na extração de modelos interessantes dos dados, 
a partir de questões bem-formuladas, a fim de aprimorar o processo de tomada de 
decisão nas organizações. 
Geralmente a análise de dados apresenta como referência a arquitetura de negócios 
que pode ser definida como um conjunto de elementos organizados que se relacionam 
entre si, e representam a estrutura organizacional e comportamental de um sistema 
de negócio, permitindo a visualização das possíveis abstrações dos processos e das 
estruturas chave do negócio. (BOENTE, 2015) 
 
 
Contexto da arquitetura de negócios 
 
 
 
LINGUAGEM PHYTON 2.7 7 
Na verdade, a arquitetura de negócio nada mais é que uma descrição dos aspectos 
significativos da organização. A arquitetura do aplicativo é uma descrição dos 
aplicativos de software que suportam o negócio, incluindo como esses aplicativos são 
utilizados e como interagem uns com os outros. 
Contudo, a ciência de dados está procurando descobrir conhecimento a partir de uma 
quantidade grande e pesada de dados que podem ser usados para tomar decisões e 
fazer previsões, e não simplesmente a interpretação de números, como é pensado 
pela maioria das pessoas. 
 
1.5 Modelando data 
 
 Num mercado altamente concorrente e globalizado, em que o importante é ser 
digital, acima de tudo, é crucial para toda empresa estar em perfeito alinhamento com 
uma filosofia baseada na Ciência de Dados para tomar decisões direcionadas a fim de 
conseguir vantagem competitiva. 
 
 
Modelagem de dados baseado em ciência 
 
 A modelagem baseada em Ciência de Dados consiste na definição do que 
precisa ser encontrado a fim de se aprimorar um processo de tomada de decisão com 
base em dados, informações e conhecimento, visando gerar vantagem competitiva 
para as organizações. 
 
 
LINGUAGEM PHYTON 2.7 8 
A partir dessa modelagem, muitos arquivos são gerados, desde datasets até scripts, 
roteiros, dicionários de dados, documentações diversas etc. 
De acordo com Martins (2015), todo dado é útil quando analisado cuidadosamente a 
partir do foco de negócio de certa organização, visando o aprimoramento do processo 
de tomada de decisão de uma empresa. 
 
 
1.6 Pensando em análise de dados 
 
A análise de dados é fundamental para o sucesso de qualquer empresa, 
independentemente do seu setor de negócio. Por este motivo, a tendência é que o 
mundo dos negócios seja baseado na análise de dados concisos para aprimoramento 
do processo de tomada de decisão. Neste viés, surge a Ciência de Dados, pois a 
maioria dos dados, informações e conhecimentos que as empresas podem deter está 
disponível na grande teia mundial de computadores (a internet), dispostos em Big 
Data, acessáveis 24 horas por dia, 7 dias na semana, por meio da tecnologia de Cloud 
Computing. 
As empresas são influenciadas por fatores externos e internos, sendode importância 
vital para o sucesso da organização o processo de coleta, organização, análise, 
compartilhamento e monitoramento de dados, informações e conhecimento, que 
ofereçam suporte à gestão de negócios. (CORRAR; DIAS FILHO, 2007) 
Então, a Ciência de Dados acesso, análise e tratamento desses dados, que estão 
organizados logicamente em gigantescos repositórios de dados denominados Big Data, 
acessíveis pela internet através da tecnologia de computação em nuvem. 
De acordo com Provost & Fawcett (2013), no que se refere às operações, surge o 
termo “Big Data Analytics”, que é o trabalho analítico e inteligente de grandes volumes 
de dados, estruturados ou não, coletados, armazenados e interpretados por produtos 
de software de altíssimo desempenho 
 
 
 
 
 
 
LINGUAGEM PHYTON 2.7 9 
1.7 Big Data 
 
Big Data se transformou em uma expressão genérica, mas em sua essência ela 
apresenta três desafios para as organizações. Em primeiro lugar, os líderes de negócios 
devem implementar novas tecnologias e, em seguida, prepararem-se para uma 
revolução em potencial na coleta e mensuração de informações. Mais importante que 
isso, a organização como um todo deve se adaptar a essa nova filosofia sobre como 
as decisões serão tomadas se o real valor do Big Data for compreendido. Um segundo 
aspecto importante do Big Data é o potencial de novas formas de mensuração. Por 
exemplo, já está amplamente disponível a tecnologia que permite que você transmita 
seus dados de saúde a seu médico enquanto você se exercita. Finalmente, as 
organizações devem se confrontar com uma nova filosofia sobre a tomada de decisões. 
Hoje, vivemos em um mundo que está sempre conectado e no qual as preferências 
dos consumidores mudam a cada hora. Eles podem checar vários canais ao mesmo 
tempo e traçar uma série de caminhos inusitados e diferentes para efetuar uma 
compra. O processo de compra se parece mais com um novelo de lã do que com o 
funil de compra previsível, serial ou linear que tínhamos no passado. Isso significa que 
as organizações precisam estar preparadas para implantar novos canais para tomada 
de decisão, alguns deles automatizados, que permitam respostas rápidas e ágeis às 
informações dos clientes. 
 
 
 
 
LINGUAGEM PHYTON 2.7 10 
O Big Data 
 
De acordo com Amaral (2016), Big Data refere-se ao gigantesco volume de dados, 
estruturados e não estruturados, que impactam os negócios no dia a dia. 
No entanto, o mais importante não é a quantidade de dados, e sim o que as empresas 
fazem com os dados que realmente importam. Em outras palavras, é importante saber 
como garimpar os dados certos, na hora certa para o momento certo de tomada de 
decisão. 
Quando o termo Big Data é associado a Cloud Computing, significa dizer que se tem 
um gigantesco armazém de dados disponível pela web, cujos dados estão 
armazenados em inúmeros servidores dispostos em várias partes do mundo, 
remotamente ligados e disponíveis 24 horas por dia. 
 
1.8 Cloud Computing 
 
Hoje, as empresas estão inseridas num mundo totalmente globalizado e num mercado 
altamente mutável, tendo a necessidade de sempre buscar mudanças em sua 
estrutura organizacional visando uma melhor forma de adequação de suas estratégias 
junto a um mercado altamente competitivo. 
As empresas também passam por transformações crescentes ligadas à questão da 
tecnologia. Tais transformações levam a modificações necessárias, não apenas de 
equipamentos, mas também nos processos de trabalho, na gestão de pessoas e na 
reestruturação de seu parque tecnológico. 
A implantação de projetos de Cloud Computing requer um redesenho da organização 
orientado por uma redefinição necessária de hardware, software, network e 
peopleware, já que existe uma eminente conexão estratégica entre pessoas, capital 
intelectual e um conjunto de novas tecnologias. (BOENTE, 2015) 
A Cloud Computing ou computação em nuvem se refere a um conjunto de recursos 
virtuais facilmente utilizáveis e acessíveis, tais como hardware, software, plataformas 
de desenvolvimento e serviços. (VERAS, 2013) 
http://www.partnerconsulting.com.br/partner-consulting-brasil-lanca-programa-corrigindo-rotas/
 
 
LINGUAGEM PHYTON 2.7 11 
 
Computação em nuvem 
 
O modelo de Cloud Computing é formado por cinco características essenciais, quatro 
modelos de implantação e três modelos de serviços. As cinco características essenciais 
da computação em nuvem são: 
(1) Sob demanda (On-demand self-service): fornecedores de serviços em 
nuvem oferecem diversos recursos, como armazenamento e processamento, 
são habilitados e configurados segundo as necessidades da empresa, sem 
nenhum tipo de intervenção por parte de especialistas com o servidor, 
perfazendo, portanto, certa economia financeira, já que o cliente paga 
apenas pelos serviços que são efetivamente contratados; 
(2) Acesso à rede (Broad network access): para fornecer ou utilizar um serviço 
em nuvem, é preciso acessar uma rede padrão através de dispositivos que 
possuam uma plataforma específica. Tal acesso pode ser feito por meio de 
laptops, tablets, smartphones, computadores pessoais, dentre outros; 
(3) Compartilhamento de recursos (Resource pooling): os provedores de 
serviços em nuvem utilizam um modelo de compartilhamento de recursos 
conhecido como multi-inquilino (Multi-tenancy), que permite o 
compartilhamento físico, expansível de acordo com a demanda requerida 
por cada usuário, com vários usuários virtualmente, de modo que cada 
recurso fique isolado em sua máquina. A localização dos dados de cada 
usuário não é exata, dificultando, portanto, o seu controle total. Entretanto, 
 
 
LINGUAGEM PHYTON 2.7 12 
alguns provedores de serviços em nuvem já permitem que o usuário escolha 
a localização do Data Center (país, estado etc.); 
(4) Controle de serviços (Measured service): implica no controle de todos os 
recursos contratados pelo usuário com a possibilidade de monitoramento, 
controle e relatórios de todos os recursos utilizados, dando maior 
transparência para quem contrata os serviços e para o próprio fornecedor 
de nuvem. 
(5) Elasticidade imediata (Rapid elasticity): capacidade de aumentar ou 
diminuir recursos físicos não utilizados dos servidores. Na maioria das vezes, 
é realizado de modo automático ou em alguns casos controlados pelos 
funcionários do provedor. Essa elasticidade imediata evita serviços ociosos, 
possibilitando, portanto, serviços mais baratos para os clientes, já que o 
provedor procura utilizar todos os recursos físicos do Data Center. 
 
 
As cinco características essenciais de Cloud Computing 
 
Os modelos de implantação de projeto de cloud computing são os seguintes: 
(1) Público (Public Cloud): as infraestruturas estão disponíveis para o uso 
do público em geral e são gerenciadas pelas empresas fornecedoras de 
serviços de nuvem, de forma que o usuário paga pelo que usar. As 
infraestruturas da nuvem pública são instaladas nas empresas 
 
 
LINGUAGEM PHYTON 2.7 13 
fornecedoras e, muitas vezes, os usuários não possuem conhecimento 
da localização dos dados; 
(2) Privado (Private cloud): as infraestruturas são criadas para o uso 
exclusivo e particular de uma empresa, permitindo um maior controle 
sobre os dados. As nuvens privadas são gerenciadas pelo departamento 
de TI, terceirizadas ou de forma combinada, permitindo, portanto, que 
esses recursos sejam utilizados para fornecer serviços internos ou 
utilizados como mecanismo de regras de negócio da empresa. A 
infraestrutura da nuvem privada pode estar localizada dentro ou fora da 
empresa; 
 
 
Os quatro modelos de implantação de Cloud Computing 
 
(3) Comunitário (Community cloud): as infraestruturas são compartilhadas 
por várias organizações que possuem propósitos e interesses comuns. A 
infraestrutura da nuvem comunitária pode ser gerenciada pelo 
departamento de TI das empresas, terceirizadas ou de formacombinada, 
e a sua infraestrutura pode estar localizada dentro ou fora das empresas; 
(4) Híbrido (Hybrid cloud): as infraestruturas são compostas por dois ou 
mais modelos de implantação (nuvem privada, nuvem comunitária, 
nuvem pública). Em uma nuvem híbrida, os modelos de implantação 
trabalham como se fossem uma única nuvem. Em linha gerais, as 
empresas buscam utilizar esse modelo para ter maior controle sobre os 
dados. 
 
Os três modelos de serviços disponibilizados pela computação em nuvem são: 
 
 
 
LINGUAGEM PHYTON 2.7 14 
(1) Software como serviço (Software as a Service – SaaS): modelo de 
serviço em que o fornecedor disponibiliza aplicativos que são acessados 
por meio de Web Browsers (navegadores web) ou via desktop. Esse 
modelo vem revolucionando a forma de como os aplicativos são 
comercializados, uma vez que o usuário não compra a licença do 
aplicativo, como normalmente acontece, mas paga apenas pelo serviço 
que utiliza. Existem diversos vários serviços disponíveis, como Google 
Docs, Google Tradutor, Photoshop Express Editor dentre outros, alguns 
gratuitos e outros pagos. 
 
 
Os três serviços de computação em nuvem 
 
(2) Plataforma como Serviço (Platform as a Service – PaaS): modelo de 
serviço destinado a desenvolvedores de soluções para Cloud Computing, 
pois fornece um ambiente com sistema operacional, frameworks para 
desenvolvimento de aplicativos em nuvem, controle de transações, 
serviços e também hospedagem para os aplicativos desenvolvidos (cloud 
apps). Cada provedor fornece suas próprias bibliotecas de 
desenvolvimento, banco de dados e infraestrutura para o desenvolvedor. 
Aqui, o usuário não pode administrar ou controlar os recursos da 
 
 
LINGUAGEM PHYTON 2.7 15 
infraestrutura como processamento, armazenamento, memória entre 
outros recursos, mas tem controle sobre os aplicativos desenvolvidos e 
as configurações no ambiente de hospedagem do servidor; 
(3) Infraestrutura como serviço (Infrastructure as a Service – IaaS): 
modelo de serviço que oferece controle sobre processamento, 
armazenamento, redes e outros recursos básicos da computação em 
nuvem. Aqui, o usuário poderá instalar o sistema operacional e as 
aplicações para o funcionamento da máquina virtual, além de ter total 
acesso para administrar ou controlar a infraestrutura do servidor, o 
usuário ainda tem controle sobre o sistema operacional, armazenamento 
das informações, controle de memória, aplicativos implantados e, em 
alguns casos, o controle do firewall do host e recursos da rede pelo painel 
de administração do fornecedor. 
 
Mudança no perfil dos serviços 
 
Dessa forma, existe uma mudança significativa no perfil dos serviços quando estamos 
trabalhando com Cloud Computing. 
Assim, quando uma empresa implanta um novo tipo de tecnologia, em particular Cloud 
Computing, a utilização desta estará sujeita às influências do clima e da cultura 
organizacional, requerendo, portanto, que essas influências sejam analisadas como 
peças fundamentais na gestão estratégica de qualquer empresa, independentemente 
do seu porte. 
 
 
LINGUAGEM PHYTON 2.7 16 
 
 
2. Conhecendo o Phyton 
 
2.1 Histórico de Phyton 
 
Neste capítulo iremos conhecer a linguagem de programação Phyton 2.7, suas 
características e particularidades. 
Python é uma linguagem de programação interpretada, de código-fonte aberto e 
disponível para diversos tipos de sistemas operacionais. 
 
Símbolo do Phyton 
 
Diferentemente de outras linguagens de programação tradicional, como C# e Java, 
Phyton não é uma linguagem compilada (traduzida para uma linguagem da máquina), 
mas lida e “interpretada" por outro programa (chamado de interpretador), que traduz 
para a máquina o que seu programa quer dizer. 
Os integrantes e/ou participantes da Data Sciencester, quando passam por 
treinamentos em suas empresas, em linha geral, são obrigados a estudar a linguagem 
de programação Phyton. Dessa forma, todo o cientista de dados domina ou pelo menos 
simplesmente tem a obrigação de conhecer a linguagem de programação Python. 
De acordo com Grus (2016), qualquer pessoa pode baixar Phyton em 
<https://phyton.org/>. 
 
 
 
LINGUAGEM PHYTON 2.7 17 
 
Phyton Software Fundation 
 
A partir daí, um download poderá ser feito para se obter uma versão da linguagem de 
programação Phyton (Phyton 2.7, no nosso caso). 
 
 
Página para download de Phyton 
 
 Embora a versão mais recente seja Phyton 3.4, todos os códigos-fonte que 
iremos trabalhar neste curso foram escritos em Phyton 2.7, pois, segundo Grus (2016), 
a comunidade do Data Science ainda está presa a esta versão. 
 Depois de instalado, um ícone aparecerá na sua área de trabalho para que você 
possa acessar o ambiente de programação Phyton. 
 
 
LINGUAGEM PHYTON 2.7 18 
 
Ícone do Phyton 
 
 A seguir, após a execução de Phyton, uma tela com o ambiente de programação 
Phyton permanecerá aberta para a criação e a adição de programas de computador. 
 
Ambiente de programação Phyton 
 
 Para a escrita dos códigos-fonte em Phyton, sugere-se a instalação e uso do 
editor Notepad++ <https://notepad-plus-plus.org/>. O Notepad++ é um editor de 
texto e de código-fonte aberto sob a licença GPL (GNU General Public License). 
Ele é distribuído como software livre e suporta várias linguagens de programação 
rodando sob o sistema operacional Windows e Linux. 
 
 
LINGUAGEM PHYTON 2.7 19 
 
Download do Notepad++ 
 
 Em seguida, pode-se observar a tela do ambiente de edição de programas 
(código-fonte Phyton) disponibilizado pelo Notepad++: 
 
Ambiente do Notepad++ 
 
 
 
LINGUAGEM PHYTON 2.7 20 
2.2 A linguagem de programação 
 
Python foi concebido no final do ano de 89 por Guido van Rossum no Instituto de 
Pesquisa Nacional para Matemática e Ciência da Computação (CWI), nos países baixos. 
Um dos focos primordiais da linguagem de programação Python era aumentar a 
produtividade do programador. Foi desenvolvida com base na linguagem ABC e possui 
parte da sintaxe derivada da linguagem C. 
 
Python é uma linguagem de programação de alto nível, interpretada, de script, 
orientada a objetos, de tipagem dinâmica e forte. (MUELLER, 2016) 
Phyton é de código aberto e gerenciado pela organização sem fins lucrativos 
denominada Phyton Software Fundation. Ela é uma linguagem de programação 
fortemente utilizada na Data Sciencester por todos os cientistas de dados. 
 
Rede Social – Data Sciencester 
 
Como se trata de uma linguagem de programação voltada para soluções script, 
embasada sob o paradigma orientado a objetos, é ideal para os cientistas de dados de 
toda a Data Sciencester. 
 
 
2.3 Características e particularidades 
 
Python é uma linguagem de propósito geral de alto nível que apresenta como 
características a orientação a objetos e a imperatividade, funcional e procedural. 
 
 
LINGUAGEM PHYTON 2.7 21 
Devido às suas características, ela é principalmente utilizada para processamento de 
textos, dados científicos e criação de CGIs para páginas dinâmicas para a web. 
Os cientistas de dados costumam utilizar a versão Phyton 2.7, embora a versão 3.4 
seja a mais atual. 
O vocabulário de Python é bastante reduzido. Chamamos este vocabulário de “palavras 
reservadas”. Estas são as palavras que possuem um significado muito especial em 
Python, pois quando identificadas em um programa possuem apenas um significado 
em Python. 
 Phyton possui o que chamamos de tipagem dinâmica, ou seja, ela pode mudar a cada 
nova entrada de dados em uma variável. Com isso, a quantidade de tempo de 
planejamento prévio é reduzida e é considerada um mecanismo importante para a 
flexibilidade e simplicidade das funções da linguagem de programação Phyton. 
Outra característica importante: em Phyton, não existe um delimitador específico para 
blocos de código, então essa “delimitação” é feita por meio de indentação, garantindo, 
portanto,que o código Phyton seja sempre legível. 
 
>>> print “O numero eh “ 
... if a > 0: 
... print “positivo” 
... else: 
... print “negativo” 
... exit( ) 
 
 O segredo da linguagem de programação Phyton é a indentação das linhas de 
código, delimitando, portanto, os blocos de código de um programa de computador. 
 
2.4 Terminologia 
 
As linguagens de programação, em sua grande maioria, são ditas compiladas, pois 
necessitam de um programa especial (denominado compilador) para traduzir para 
máquina o que o programa quer realmente dizer. 
 
 
LINGUAGEM PHYTON 2.7 22 
Por definição, um compilador é um programa de computador que, a partir de um 
código-fonte escrito em uma linguagem de programação, cria um programa 
semanticamente equivalente, denominado código-objeto. 
 
Processo de compilação 
 
Portanto, um compilador traduz um programa de uma linguagem de alto nível, textual, 
facilmente entendível, para a linguagem de máquina, baixo nível, específica para um 
processador e sistema operacional. 
Tecnicamente, o processo de compilação é composto de duas fases: análise e 
síntese. A análise tem como objetivo entender o código-fonte e representá-lo em uma 
estrutura intermediária. A síntese constrói o código-objeto a partir desta representação 
intermediária. 
A linguagem de máquina parece ser bastante simples, já que só existem zero e um (0 
e 1), código binário, mas sua sintaxe é ainda mais complexa do que Python. Dessa 
forma, pouquíssimos programadores já escreveram em linguagem de máquina. 
Costuma-se construir diversos tradutores para permitir que programadores escrevam 
em linguagens de alto nível, tais como Python ou JavaScript, e eles convertem os 
programas em código que possa ser traduzido para linguagem de máquina para ser 
executado pela UCP. 
 
 
LINGUAGEM PHYTON 2.7 23 
Como a linguagem de máquina está associada ao hardware do computador, ela não é 
portável em diferentes tipos de hardware. Programas escritos em linguagens de alto 
nível podem ser utilizados em diferentes computadores, utilizando-se um interpretador 
diferente ou recompilando o código para criar uma versão do programa em linguagem 
de máquina para o novo computador (de nova arquitetura). 
Interpretadores são programas de computador que leem um código-fonte de uma 
linguagem de programação interpretada, como é o caso da linguagem Phyton, e o 
converte em código executável. 
O interpretador lê e “interpreta” linha a linha do código-fonte, convertendo-o em 
código-objeto ou bytecodes à medida que vai executando o programa ou, em alguns 
casos, converte todo o código-fonte para depois executá-lo. 
 
Processo de interpretação 
 
Em princípio, pode-se implementar compiladores e interpretadores para qualquer 
linguagem de programação. A escolha de criar um compilador ou interpretador para 
 
 
LINGUAGEM PHYTON 2.7 24 
certa linguagem de programação depende exclusivamente da proposta da própria 
linguagem de programação. 
 
2.5 Escrevendo programas 
 
Escrever programas no interpretador Python é uma boa maneira de conhecer as 
características da linguagem, mas não é recomendado para resolver problemas mais 
complexos. Quando queremos escrever um programa, usamos um editor de texto para 
escrever instruções em Python em um programa denominado Script (recomenda-se o 
editor Notepad++). Por convenção, Scripts em Python possuem nomes terminados 
com “.py”. Dessa forma, um programa em Phyton sempre apresentará a extensão 
“.py”. 
Observe como exemplo a linha de código do “programa1.py”. 
 
>>> print “Alo Mundo!” 
 
Em geral, você não tem apenas uma linha de código de programação, seja em Phyton 
ou seja, em qualquer outra linguagem de programação. Veja: 
 
>>> print “Primeira Instrução” 
... print “Segunda Instrução” 
... print “Terceira Instrução” 
... print “Quarta Instrução” 
... print “Enésima Instrução” 
 
 
2.6 Bloco de programas 
 
Existem alguns padrões conceituais de baixo nível que usamos para a construção de 
programas de computador. Estas construções não são apenas para programas em 
Python, elas são parte de todas as linguagens de programação, desde a linguagem de 
máquina até as linguagens de alto nível. Temos então: 
 
 
LINGUAGEM PHYTON 2.7 25 
- Entrada: permite ao programa obter dados por meio de leitura de dados de um 
arquivo ou até mesmo por meio de um sensor como microfone ou GPS, ou 
simplesmente digitados por teclado. 
- Saída: permite mostrar os resultados dos programas na tela ou impressora ou os 
armazena em um arquivo. 
- Execução sequencial: permite executar as sentenças uma após a outra, na ordem 
em que aparecem no Script, seguindo sua ordem de escrita. 
- Execução condicional: permite verificar algumas condições e executa uma rotina ou 
comando específico acerca da condição determinada. 
- Execução de repetição: permite executar um conjunto de instruções repetidamente. 
- Reúso: permite a reutilização de instruções em outros programas. 
 
Tanto em Phyton como em qualquer outra linguagem de programação, existem três 
tipos de erros clássicos decorrentes de um programa de computador. Na medida em 
que seus programas se tornem sofisticados, você poderá encontrar os seguintes tipos 
de erros de programação: 
- Erros de sintaxe: significa que você violou as regras de “gramática” do Python. O 
Python faz o possível para apontar para a linha e o caractere que ele percebeu que 
estão confusos. A única coisa complicada em erros de sintaxe é que às vezes os erros 
que precisam ser corrigidos estão antes do local que o Python identificou. 
Dessa forma, a linha e o caractere que o Python indicar em um erro de sintaxe são 
apenas pontos iniciais de investigação. 
- Erros de lógica: ocorre quando o programa está com a sintaxe correta mas há um 
erro na ordem das sentenças e talvez um erro na relação entre as sentenças. Um 
programa de computador apresenta linhas de instruções sequenciais que devem ser 
escritas logicamente para que o resultado do programa faça algum tipo de sentido no 
contexto ao qual foi implementado. 
- Erros de semântica: Um erro de semântica ocorre quando sua descrição de passos 
está sintaticamente correta e na ordem correta mas há simplesmente um erro no 
programa. O programa está correto, no entanto não faz o que deveria fazer. 
 
 
 
 
LINGUAGEM PHYTON 2.7 26 
 
3. Explorando o Phyton 2.7 
 
3.1 Valores e tipos 
 
Valores são elementos básicos nos quais um programa trabalha, como uma letra ou 
um número. (MARTINS, 2015) Os valores apresentam tipos diferentes. Por exemplo, 
“1” representa um valor do tipo inteiro, “5.5” representa um valor do tipo real e 
‘Boente’ representa um valor do tipo cadeia de caracteres, também conhecida como 
String. 
O interpretador Phyton pode identificar facilmente Strings porque elas são escritas 
entre aspas simples, ‘Boente’, por exemplo. 
Veja as instruções a seguir: 
 
>>> print 1 
1 
>>> print 5.5 
5.5 
>>> print ‘Boente’ 
Boente 
 
Note que os valores do tipo inteiro e real não precisaram ser colocados entre aspas 
simples. No entanto, a String ‘Boente’ necessitou das aspas para ser exibida. 
Para a exibição dos valores, utilizamos a instrução print, que se refere a um comando 
de saída, output. 
O interpretador Phyton também poderá auxiliá-lo a identificar o tipo de um valor caso 
tenha alguma dúvida. Observe a seguir: 
 
>>> type (1) 
<type ‘int’> 
>>> type (5.5) 
<type ‘float’> 
 
 
LINGUAGEM PHYTON 2.7 27 
>>> type (‘Boente’) 
<type ‘str’> 
 
 Note que a instrução type foi utilizada para identificar o tipo referente a certo 
valor. No nosso exemplo: no primeiro caso, inteiro (int); no segundo caso, real (float) 
e no terceiro, caso String (str). 
A seguir, serão apresentados os principais tipos builtin da linguagem de programação 
Python: 
int: para números inteiros. 
float: para números reais. 
str: para cadeiade caracteres (String). 
bool: armazena true ou false (Lógico ou Booleano). 
list: para agrupar um conjunto de elementos (lista de elementos). 
tupla: igual ao tipo list, porém imutável. 
dic: para agrupar elementos que serão recuperados por chave. 
 
 
3.2 Variáveis e constantes 
 
Uma variável representa tecnicamente um espaço reservado de memória em que se 
pode armazenar temporariamente dados. Mueller (2016) afirma que uma variável nada 
mais é que um nome dado para certo valor. Tecnicamente, pode ser chamada de 
variável significativa quando o nome dado à variável se referir claramente ao conteúdo 
que deverá ser armazenado nela. 
O operador de atribuição do Phyton, símbolo de igualdade (=), permite criar novas 
variáveis, atribuindo valores para elas, conforme exemplo a seguir: 
 
>>> x = 1 
>>> y = 5.5 
>>> z = ‘Boente’ 
 
 
 
LINGUAGEM PHYTON 2.7 28 
Nesses exemplos iniciais, criou-se três variáveis: “x”, do tipo inteira; “y”, do tipo real; 
e “z” do tipo String. No entanto, os nomes utilizados para estas variáveis não são 
considerados significativos. A seguir, pode-se observar o mesmo exemplo com o uso 
de variáveis significativas: 
 
 
>>> numero = 1 
>>> nota = 5.5 
>>> nome = ‘Boente’ 
 
É claro que embora, estejamos utilizando uma variável significativa, se o usuário tiver 
a possibilidade de entrar com dados, ele poderá não respeitar o real valor requerido 
pela variável. 
Para a criação dos nomes das variáveis, deve-se iniciar com letras, maiúsculas ou 
minúsculas, que podem vir acompanhadas de números, sendo ainda possível a 
utilização do caractere ‘_’ na composição do nome da variável. Qualquer outro 
caractere será considerado inválido, inclusive as chamadas palavras reservadas 
(aquelas que são específicas do Phyton, conforme ilustrado no quadro a seguir). 
 
As 31 palavras reservadas do Phyton 
And elif if print 
as else import raise 
assert except in return 
break exec is try 
class finally lambda while 
continue for not with 
def from or yield 
del global pass 
 
Exemplos de variáveis significativas realmente válidas: Aluno_1, salario_bruto, 
nota_1_bim etc. 
 
 
LINGUAGEM PHYTON 2.7 29 
Uma constante em Phyton são “variáveis” cujos valores não são alterados no decorrer 
do programa. A forma de criação de uma constante é idêntica à de uma variável. 
Então, para se diferenciar um a variável de uma constante, busca-se escrever as 
constantes com letras maiúsculas. Observe a seguir: 
 
>>> numero = 7 
>>> idade = 42 
>>> PI = 3.14159265 
>>> MAX = 100 
 
 Nas duas primeiras linhas de código, tem-se as variáveis número e idade, e nas 
duas últimas linhas tem-se as constantes PI e MAX. 
 
 
3.3 Sentenças e expressões 
 
De acordo com Grus (2016), uma sentença refere-se a uma unidade de código que o 
interpretador Python pode executar. Quanto uma sentença no modo interativo do 
Phyton é digitada, o interpretador executa e exibe o resultado, caso haja. 
Quando nos referimos a scripts Phyton, geralmente eles contêm uma sequência de 
sentenças, e, caso exista mais de uma, os resultados aparecem cada vez que as 
declarações são executadas, a exemplo do script abaixo: 
 
print 1 
num = 5.5 
print valor 
 
 
 Que irá gerar a seguinte saída: 
1 
5.5 
 
 
 
LINGUAGEM PHYTON 2.7 30 
Como a atribuição do valor 5.5 para a variável num não gera saída, então não terá 
output para esta linha de código. 
Toda vez que for necessário dar uma pausa na tela de saída para que o usuário possa 
ler as informações impressas como saída de um programa Phyton, busca-se utilizar a 
função raw_input( ), ou seja, faz-se uma pausa temporária até que algo seja digitado 
pelo usuário. Veja como fica o programa anterior com o raw_input( ): 
 
 print 1 
 num = 5.5 
print valor 
raw_input( ) 
 
Quanto à saída produzida pelo programa exemplo, 1 e 5.5, nada seria alterado, 
portanto. 
 
 
 
 
 
 
3.4 Operadores e operandos 
 
Os operadores são símbolos especiais utilizados para representar certas operações 
aritmética. Os operandos são valores que os operadores designam às variáveis. 
Os operadores +, -, *, / e ** são de adição, subtração, multiplicação, divisão e 
exponenciação, respectivamente. Podemos observar os tipos de operadores existentes 
no Phyton através das tabelas de operadores ilustradas no estudo de tipos de 
operadores. 
 
 
 
 
 
 
LINGUAGEM PHYTON 2.7 31 
3.5 Tipos de operadores 
 
3.5.1 Operadores aritméticos 
 
 
Símbolo Descrição Exemplo 
+ Adição de valores a + b 
- Subtração de valores a - b 
* Multiplicação de valores a * b 
/ Divisão de valores reais a / b 
// Divisão de valores inteiros a // b 
** Exponenciação de valores a ** b 
% Resto da divisão (módulo) a % b 
 
 
 
 
3.5.2 Operadores relacionais 
 
Símbolo Descrição Exemplo 
> Maior que a > b 
< Menor que a< b 
>= Maior ou igual a >= b 
<= Menor ou igual a <= b 
== Igualdade a == b 
!= Diferença a != b 
 
 
3.5.3 Operadores lógicos e deslocamento de bits 
 
 
 
 
LINGUAGEM PHYTON 2.7 32 
Símbolo Descrição Exemplo 
and E lógico a > b and b < c 
or Ou lógico a > b or b < c 
not Não lógico not (a > b) 
<< Deslocamento de bits à 
esquerda 
a << b 
>> Deslocamento de bits à direita a >> b 
& Operador bit a bit AND a & b 
| Operador bit a bit OR a | b 
^ Operador bit a bit XOR a ^b 
~ Operador bit a bit NOT ~a 
 
 
 
3.5.4 Operador com funções anônimas 
 
Permite a criação de funções que não têm um nome especificado. Elas ainda 
representam um recurso interessantíssimo na linguagem de programação Phyton 
quando se trata de valor de parâmetro, call-back. 
 
 5.5.4.1 Map( ) 
A função map( ), dita como função “builtin”, é implementada diretamente no 
interpretador Python, podendo ser utilizada sem a importação de um módulo 
específico. 
Esta função, em especial, permite aplicarmos uma função a cada elemento de uma 
lista, a qual devolve uma nova lista contendo os elementos resultantes da aplicação 
da função especificada. 
 
 import math 
lista1 = [1, 4, 9, 16, 25] 
lista2 = map(math.sqrt, lista1) 
 
 
LINGUAGEM PHYTON 2.7 33 
print lista2 
raw_input() 
 
 O programa produzirá a seguinte saída: 
 
 [1.0, 2.0, 3.0, 4.0, 5.0] 
 
 Esta saída se refere à raiz quadrada de cada um dos números assinalados 
na lista apresentada e nomeada como lista1. Para tanto, foi necessário utilizarmos a 
biblioteca padrão de funções matemáticas (import math) e em seguida a função para 
retornarmos à raiz quadrada de um número, math.sqrt. 
 
 5.5.4.2 Filter( ) 
 A função filter( ) permite ao usuário filtrar elementos de uma 
determinada sequência, cujas diretrizes de filtragem serão definidas pelo programador 
Phyton. Observe o exemplo a seguir: 
 
 def maior_que_zero(x): 
 return x > 0 
 
valores = [10, 4, -1, 3, 5, -9, -11] 
print filter(maior_que_zero, valores) 
raw_input() 
 
 A saída produzida pelo programa é a seguinte: 
 
 [10, 4, 3, 5] 
 
 Ou seja, todos os números maiores que zero. 
 
 
 5.5.4.3 Reduce( ) e lambda 
 
 
LINGUAGEM PHYTON 2.7 34 
A função reduce( ) é outra função do tipo builtin do Python cuja utilidade está na 
aplicação de uma função a todos os valores do conjunto, de forma a agregá-los todos 
em um único valor. Ela é muito utilizada com a expressão lambda. Na verdade, lambda 
na mais é que uma função anônima que aceita argumentos, inclusive operacionais, e 
que suporta apenas uma expressão. Observe o script exemplo a seguir: 
 
valores = [1, 2, 3, 4, 5] 
soma = reduce(lambda x, y: x + y, valores) 
print soma 
raw_input( ) 
 
 Irá gerar como saída 15, que representa a soma de todos os números da 
sequência definida. 
 
 
3.5.5 Precedência dos operadores 
 
Operadores Descrição 
** Index (prioridade mais alta) 
~ + - Bit a bit inversão, além de unário e menos 
(os dois últimos método chamado + e @ - @) 
* /% // Multiplicação, divisão e módulo tomar divisível+ - Adição e subtração 
>> << Certo, operador de esquerda 
& Bit 'E' 
^ | Operadores bit a bit 
<= <>> = Relacional 
 
 
LINGUAGEM PHYTON 2.7 35 
<> ==! = Operador de igualdade 
=% = / = @ = - = + = * 
= * = 
Operadores de atribuição 
É, não está Operador de identidade 
Em, não em Operador de membro 
Ou, não e Operadores lógicos 
 
 
3.5.6 Operações com String (concatenação) 
 
O operador ´+´ funciona com Strings, mas não é uma adição no sentido matemático. 
Ele tem a função de concatenação de duas ou mais Strings, isto é, proporciona a união 
de Strings. Veja o exemplo a seguir: 
 
 nome = ‘Alfredo’ 
 sobrenome = ‘ Boente’ 
 print nome + sobrenome 
 
 Dessa forma, a saída produzida pelo programa será Alfredo Boente. 
 
 
3.6 Entrada e saída 
 
Existem algumas formas de realizar a entrada de dados, input, em Phyton. Vamos 
observar algumas delas: 
 
#Primeiro exemplo de entrada e saída 
print 'Escreva algo:' 
entrada = raw_input( ) 
 
 
LINGUAGEM PHYTON 2.7 36 
print 'Voce escreveu... ' + entrada 
raw_input( ) 
 
No primeiro programa de entrada e saída, utilizou-se então uma variável chamada 
“entrada” para receber certo conteúdo digitado via teclado através da instrução 
raw_input( ), permitindo, portanto, que aconteça o processo de entrada de dados, 
input. Já para o processo de output, saída de informações, utilizou-se a instrução print. 
 
#Segundo exemplo 
nome = raw_input('Qual o seu nome? ') 
print 'Ola ' + nome 
raw_input( ) 
 
No segundo programa, a mensagem para entrada de dados já é inserida 
automaticamente na própria instrução raw_input( ), permitindo, portanto, que o valor 
lido pela variável “nome” ocorra ao lado da mensagem exibida. 
Para fazer a entrada de dados na próxima linha, conforme o primeiro exemplo, pode-
se utilizar o caractere especial para pular linha, new line, ‘\n’. Observe o próximo 
exemplo: 
 
 
#Terceiro exemplo 
nome = raw_input('Qual o seu nome?\n') 
print nome + ' tudo bem?' 
raw_input( ) 
 
Como a entrada de dados realizada através da instrução raw_input() refere-se a uma 
cadeia de caracteres, para ler um valor numérico é necessário convertê-lo em número. 
Veja os exemplos a seguir: 
 
#Quarto exemplo 
num1 = raw_input('Primeiro Numero: ') 
 
 
LINGUAGEM PHYTON 2.7 37 
num2 = raw_input('Segundo numero: ') 
print int(num1) + int(num2) 
raw_input( ) 
 
No quarto exemplo, são lidos dois valores, que são convertidos para inteiro através da 
função int( ) para que seja possível realizar a operação aritmética. Assim, supondo-se 
que os valores lidos sejam 4 e 5, respectivamente, será exibido como resposta 9, pois 
o objetivo era somar os dois números lidos via teclado. No entanto, partindo da mesma 
hipótese, caso não seja feita a conversão de tipo, o resultado impresso será igual a 
45, pois o Phyton interpretará como concatenação de caracteres. Veja n o exemplo a 
seguir: 
 
#Quinto exemplo 
num1 = raw_input('Primeiro Numero: ') 
num2 = raw_input('Segundo numero: ') 
print num1 + num2 
raw_input( ) 
 
 
 Assim como foi feito para a conversão de número inteiro, pode-se utilizar a 
função float( ) para a conversão de número real. Observe o próximo exemplo: 
 
#Sexto exemplo 
num1 = raw_input('Primeiro Numero: ') 
num2 = raw_input('Segundo numero: ') 
print float(num1) + float(num2) 
raw_input( ) 
 
Considerando que os valores fornecidos foram 5.5 e 2.4, o resultado produzido será 
7.9. 
 
 
 
LINGUAGEM PHYTON 2.7 38 
Você também poderá realizar a conversão de forma direta, através da própria instrução 
de entrada de dados. Veja o exemplo a seguir: 
 
#Setimo exemplo 
num1 = int(raw_input('Entre com um Numero Inteiro: ')) 
num2 = float(raw_input('Entre com um Numero Real: ')) 
soma = num1 + num2 
print soma 
raw_input( ) 
 
 
 
4. Estruturas de controle 
 
4.1 Expressões booleanas e operadores lógicos 
 
Uma expressão booleana é aquela que pode assumir dois valores lógicos: verdadeiro 
ou falso. 
 
>>> 1 == 1 
TRUE 
>>> 1 == 2 
FALSE 
 
O operador de igualdade, ‘==’, é apenas um dos operadores de comparação utilizados 
pela linguagem de programação Phyton. Veja outros tipos de operadores de 
comparação válidos: 
 
a != b (a não é igual à b) 
a > b (a é maior do que b) 
a < b (a é menor do que b) 
a >= b (a é maior ou igual à b) 
 
 
LINGUAGEM PHYTON 2.7 39 
a <= b (a é menor ou igual à b) 
a is b (a é o mesmo que b) 
a is not b (a não é o mesmo que b) 
 
Devemos lembrar que o símbolo ‘=’ em Phyton serve para a atribuição de valores, não 
para a representação de igualdade. 
Assim como nas demais linguagens de programação, existem três operadores lógicos 
para expressar uma conjunção, disjunção e negação. 
Os operadores lógicos em Phyton são os seguintes: and, or e not. 
 
Observe a semântica utilizada: 
 
a > 0 and a < 5 
 
Será verdadeiro apenas se a for maior que 0 e menor que 5. Portanto, ambas as 
condições devem ser satisfeitas, obrigatoriamente. 
 
a > 0 or a < 5 
 
Será verdadeiro se pelo menos uma das condições for verdadeira. 
 
not(a > b) 
 
Será verdadeira somente se a > b for falso. 
 
 
4.2 Operadores booleanos de Strings-in 
 
A linguagem de programação Phyton tem o recurso de entradas e saídas formatadas. 
Para tanto, a substituição em Strings acontece através do uso do operador %. 
Para que o interpretador Phyton possa substituir Strings, utiliza-se o símbolo % 
acompanhado da letra “s” (%s); Já para a substituição de valores numéricos, por 
 
 
LINGUAGEM PHYTON 2.7 40 
exemplo, utiliza-se o símbolo % acompanhado da letra “d” (%d) para números 
inteiros, e o símbolo % acompanhado da letra “f” (%f) para números reais. 
Então, tomando como base o exemplo ilustrado na unidade 3, a substituição ocorre 
da seguinte forma: 
 
 
#Código do script original da unidade 3 
print 1 
print 5.5 
print ‘Boente’ 
raw_input( ) 
 
#Codigo do Novo script 
num1 = 1 
num2 = 5.5 
nome = 'Boente' 
 
print '%d' % num1 
print '%f' % num2 
print '%s' % nome 
raw_input( ) 
 
 A saída produzida será a seguinte: 
 
 
 
LINGUAGEM PHYTON 2.7 41 
 
 
 Note que o valor 5.5 no formatador para números reais foi impresso como 
5.500000. Para que isto não aconteça, você poderá definir o número de casas inteiras 
e o número de casas reais no próprio formatador %f. Veja no exemplo: 
 
#Código do Novo script com definição de número de casas inteiras e 
decimais do número real 
num1 = 1 
num2 = 5.5 
nome = 'Boente' 
 
print '%d' % num1 
print '%2.1f' % num2 
print '%s' % nome 
raw_input( ) 
 
A saída produzida será a seguinte: 
 
 
 
LINGUAGEM PHYTON 2.7 42 
 
 
 Note que foram assumidas através do formatador %2.1f duas casas inteiras e 
uma casa decimal (limitador). 
 
4.3 Comparações entre Strings 
 
Em Phyton, a comparação de Strings ocorre da mesma forma da comparação de dois 
valores numéricos assim: 
 
num1 = 4 
num2 = 5 
num3 = 4 
print num1 == num2 
print num1 == num3 
raw_input( ) 
 
 No primeiro print teremos como resposta FALSE, pois 4 não é igual a 5. Não 
obstante, no segundo print teremos como resposta TRUE, pois 4 é igual a 4. 
 Vamos ver como funciona para cadeia de caracteres Strings: 
 
 
 
LINGUAGEM PHYTON 2.7 43 
palavra1 = 'Ana' 
palavra2 = 'Maria' 
palavra3 = 'ana' 
palavra4 = 'Ana' 
print palavra1 == palavra2 
print palavra1 == palavra3 
print palavra1 == palavra4 
raw_input( ) 
 
 Analisando o script apresentado, no primeiro print teremos como resposta 
FALSE, pois Ana não é igual a Maria. No segundo print, também teremos FALSE como 
resposta, pois Ana não é igual a ana. Isto porque o interpretador Phyton faz a distinção 
entre letras maiúsculas e letras minúsculas, ou seja, tecnicamente dizendo, a 
linguagem de programação Phyton é Case Sensitive. 
 
O Phyton permite a manipulação de outros métodos com Strings. Vejamos então 
alguns deles: 
 
O método upper( ) permite transformartodas as letras de uma cadeia de caracteres 
em maiúscula, enquanto o método lower( ) permite transformar todas as letras de 
uma cadeia de caracteres em minúscula. Observe o exemplo abaixo: 
 
#Conversão de letras maiusculas e minusculas 
palavra = 'Alfredo Boente' 
print palavra 
print palavra.upper() 
print palavra.lower() 
raw_input( ) 
 
A saída produzida pelo Script fica da seguinte forma: 
 
Alfredo Boente 
 
 
LINGUAGEM PHYTON 2.7 44 
ALFREDO BOENTE 
alfredo boente 
 
 
 
O método len( ) devolve um número inteiro referente à quantidade de caracteres de 
uma palavra. Veja o exemplo a seguir, o qual o número 14 referente ao total de 
caracteres da palavra ‘Alfredo Boente’: 
 
palavra = ‘Alfredo Boente’ 
print len(palavra) 
raw_input( ) 
 
A saída produzida será a seguinte: 
 
 
 
LINGUAGEM PHYTON 2.7 45 
 
 
O método count( ) retorna um número inteiro referente à quantidade de um caractere 
específico. No exemplo a seguir, o número 3 é referente ao total de letras ‘e’: 
 
palavra = ‘Alfredo Boente’ 
print palavra.count(‘e’) 
raw_input( ) 
 
 
A saída produzida será a seguinte: 
 
 
 
 
 
LINGUAGEM PHYTON 2.7 46 
O método find( ) indica a localização do “vetor” de caracteres em que se encontra a 
palavra, ou parte dela, que se deseja encontrar. Veja o exemplo a seguir, que retorna 
o número 10 referente à posição do vetor de caracteres em que se inicia a palavra 
‘ente’: 
 
palavra = ‘Alfredo Boente’ 
print palavra.find(‘ente’) 
raw_input( ) 
 
A saída produzida será a seguinte: 
 
 
 
 
4.4 Estruturas condicionais simples e composta 
 
As estruturas condicionais podem ser classificadas como simples ou composta. A 
instrução if é uma instrução de retorno booleano responsável pelo teste condicional 
em um programa Phyton. 
 
4.4.1 Estrutura simples 
 
 
 
LINGUAGEM PHYTON 2.7 47 
if a > 0: 
 print ‘Positivo’ 
 
A sentença é completada com o caractere ‘:’ ao final da instrução if. Portanto, se a 
condição for satisfeita, TRUE, a instrução print ‘Positivo’ será executada. Caso 
contrário, nada será feito. 
 
 
4.4.2 Estrutura composta 
 
if a > 0: 
 print ‘Positivo’ 
else: 
 print ‘Negativo’ 
 
Se a condição for satisfeita, será impresso ‘Positivo’. Caso contrário, será impresso 
‘Negativo’. Note que a alternativa de resposta print ‘Negativo’ virá após o senão, aqui 
representado pelo else:, conforme exemplo. 
Na estrutura composta, o teste lógico realizado sempre permite duas respostas 
possíveis: uma verdadeira, caso a condição testada seja satisfeita, e a outra falsa, caso 
não seja satisfatória. 
Vamos a mais um exemplo em que, a partir da digitação de um número, seu programa 
seja capaz de informar se este é um número par ou ímpar. 
 
num = int(raw_input('Qual o numero?')) 
if int(num) % 2 == 0: 
 print "O numero informado e par" 
else: 
 print "O numero informado e impar" 
raw_input( ) 
 
 
 
 
LINGUAGEM PHYTON 2.7 48 
4.4.3 Encadeamento de estruturas 
 
 if a < b: 
 print ‘a menor que b’ 
 elif a>b: 
 print ‘a maior que b’ 
 else: 
 print ‘a e b sao iguais’ 
 
 Note que no encadeamento de estruturas, utilizou-se elif a>b: 
para que nova alternativa seja testada, permitindo também duas respostas possíveis. 
 
 
4.5 Tratamento de exceções – Try e except 
 
Existe uma estrutura condicional de execução na linguagem de programação Python 
denominada try/except. O objetivo do try e do except é a prevenção de certa 
ocorrência de erro que você já tenha conhecimento que possa vir a acontecer e, por 
isto, precisa ser tratado. Observe o exemplo abaixo: 
 
temp = raw_input(‘Qual a temperatura em Fahrenheit?’) 
try: 
 fahr = float(temp) 
 cel = (fahr - 32.0) * 5.0 / 90 
 print cel 
except: 
 print ‘Forneca a temperatura em Fahrenheit’ 
 
Você ainda poderá agregar ao try/execept, o final, perfazendo, portanto, 
try/except/finaly. Vejamos outro exemplo de tratamento de erro: 
 
def filhos(): 
 
 
LINGUAGEM PHYTON 2.7 49 
 try: 
 val = int(raw_input('Quantas filhos voce tem? ')) 
 except StandardError, e: 
 print 'Erro - ', e 
 return 'Errado!' 
 finally: 
 print "Registrado" 
 print val 
 return val 
filhos() #Primeira vez 
filhos() #Segunda vez 
filhos() #Terceira vez 
raw_input( ) 
 
 
4.6 Estrutura de iteração com a instrução for 
 
A estrutura para/variando na linguagem de programação Phyton é representada pela 
instrução for( ). Assim como qualquer linguagem de programação, esta permite que 
um conjunto de instruções seja repetido n vezes. Observe o exemplo abaixo: 
 
for i in range(11): 
 print i 
raw_input( ) 
 
A saída produzida será: 
 
 
 
LINGUAGEM PHYTON 2.7 50 
 
 
Então, para que os números apareçam um ao lado do outro, basta colocar uma vírgula 
no final da instrução print i. Observe como os números serão impressos: 
 
 
 
Observação importante: O loop for( ) é utilizado sobre um conjunto de elementos, 
como uma lista de palavras, as linhas de um arquivo etc. 
 
 
 
LINGUAGEM PHYTON 2.7 51 
Digamos que você queira imprimir os números pares compreendidos entre 0 e 10. 
Analisando esta situação em particular, tem-se uma lista com todos os números pares 
que estejam entre 0 e 10. Vejamos o script Phyton: 
 
pares=[2,4,6,8] 
for i in pares: 
 print i, 
raw_input( ) 
 
Caso você não tenha definido um conjunto ou lista com valores, como todos os 
números ímpares compreendidos entre 1 e 10, inclusive, você deve definir o range do 
loop for conforme o exemplo abaixo: 
 
for i in range(1,10): 
 if i % 2 != 0: 
 print i, 
raw_input( ) 
 
 
4.7 Estrutura de iteração com a instrução while 
 
A instrução while( ) permite realizar um loop enquanto certa condição for verdadeira. 
Dessa forma, executa um bloco de comandos. Observe o exemplo a seguir: 
 
#Mostra a soma de todos os numeros positivos menores que 10 
cont = 1 
soma = 0 
while (cont < 10): 
 soma = soma + cont 
 cont = cont + 1 
print 'Soma = ', soma 
 
 
 
LINGUAGEM PHYTON 2.7 52 
raw_input( ) 
 
Nesta estrutura, enquanto cont, que se inicia com o valor 1 e enquanto for menor que 
10, a soma que se inicia com o valor zero vai sendo progressivamente incrementada 
de um em um, ou seja, soma = soma + 1. 
Vejamos outro exemplo do loop while: 
 
num = 5 
while num > 0: 
 print num, 
 num = num-1 
 
raw_input( ) 
 
 
4.8 Loops infinitos – Break e continue 
 
 
Uma forma elegante de controlar os chamados loops infinitos é através do uso das 
instruções break e continue do Phyton. Muitas das vezes, não conseguimos saber qual 
a hora de acabar um loop até chegar ao meio do corpo dessa iteração. Neste caso, 
em especial, pode-se fazer a escrita de um loop infinito controlado através da instrução 
break. Veja um exemplo: 
 
while True: 
 line = raw_input ('Digite algo e pressione ENTER (parar p/ 
 terminar) > ') 
 if line == 'parar': 
 break 
 print line 
print 'Finalizado!' 
 
 
 
LINGUAGEM PHYTON 2.7 53 
raw_input( ) 
 
Dessa forma, o usuário poderá digitar qualquer coisa e, ao final, pressionar a tecla 
ENTER para registrar oficialmente a entrada de dados que, em seguida, será exibida 
para o usuário. No entanto, assim que o usuário digitar ‘parar’, o loop infinito chegará 
ao seu fim. 
Vamos agora visualizar um exemplo prático de um loop infinito com o uso do break e 
continue juntos. 
 
while True: 
 line = raw_input ('Digite algo e pressione ENTER (parar p/ 
 terminar) > ') 
 if line[0]=='#': 
 continue #nao imprime nada 
 if line == 'parar': 
 break 
 print line 
print 'Finalizado!' 
 
raw_input( ) 
 
Dessa forma, podemos observar que para trabalhar com loop infinito o breake o 
continue auxiliam muito o programador Phyton. 
 
 
 
 
 
 
 
 
 
 
 
LINGUAGEM PHYTON 2.7 54 
5. Trabalhando com funções 
 
5.1 Funções embutidas 
 
Uma função é uma sequência de comandos que realiza certo cálculo. Ao definirmos 
uma função, é necessário dá-se um nome para ela e determinar um conjunto de 
comandos a serem executados. 
Quando uma função já está criada e declarada, pode-se chamar essa função através 
do seu nome. Por exemplo: no programa da unidade 4, definimos e criamos uma 
função chamada filhos( ), conforme podemos observar a seguir: 
 
def filhos(): 
 try: 
 val = int(raw_input('Quantas filhos voce tem? ')) 
 except StandardError, e: 
 print 'Erro - ', e 
 return 'Errado!' 
 finally: 
 print "Registrado" 
 print val 
 return val 
filhos() #Primeira vez 
filhos() #Segunda vez 
filhos() #Terceira vez 
 
 
 A chamada da função filhos( ), neste programa exemplo, ocorreu três vezes, 
conforme ilustrado: 
filhos() #Primeira vez 
filhos() #Segunda vez 
filhos() #Terceira vez 
 
 
 
LINGUAGEM PHYTON 2.7 55 
 A linguagem de programação Phython disponibiliza diversas funções embutidas, 
as quais podemos usar sem a necessidade de definirmos antes. 
No exemplo a seguir, o Phyton irá retornar a letra de maior valor (MAX), e em seguida 
a letra de menor valor (MIN). Os valores das letras são reconhecidos pelo Phyton 
através da tabela ASCII – American Standard Code for Information Interchange. Por 
exemplo: a letra A vale 65(10), a letra B vale 66(10), e assim por diante. 
 
 
 
#Exemplo didatico 
print max('BOENTE') 
print min('BOENTE') 
 
raw_input( ) 
 
 No primeiro print, será exibida a letra ‘T’, pois ela tem o maior (MAX) valor, ou 
seja, 84(10). Já no segundo print, será exibida a letra ‘B’, pois ela tem o menor (MIN) 
valor, ou seja, 66(10). 
No próximo exemplo, podemos visualizar as funções max e min, cuja função devolve 
o maior e o menor valor de uma lista, respectivamente. 
 
 
LINGUAGEM PHYTON 2.7 56 
 
#Segundo exemplo 
d = {'a': 1000, 'b': 3000, 'c':100} 
print 'a=1000, b=3000, c=100' 
print 'Maximo = ' + max(d, key=d.get) 
print 'Minimo = ' + min(d, key=d.get) 
 
raw_input( ) 
 
 O script apresentará como resposta o maior e o menor valor daqueles definidos 
na lista, ora denominada “d”. 
 A outra função embutida que podemos citar como exemplo é a função len( ), 
que retorna um valor inteiro referente à quantidade total de letras de certa String. 
Observe o exemplo abaixo: 
 
#Retorna o valor referente a quantidade de caracteres de uma String 
print len('BOENTE') 
 
raw_input( ) 
 
 Neste caso, a resposta impressa será 6. 
 
5.2 Funções e conversões de tipo 
 
 
A linguagem Python contém funções para converter valores de um tipo para outro. 
Vejamos alguns exemplos: 
 
#Converte uma String em número inteiro 
num1 = raw_input('Entre com um numero inteiro: ') 
num2 = raw_input('Outro numero inteiro: ') 
print int(num1) + int(num2) 
 
 
LINGUAGEM PHYTON 2.7 57 
raw_input( ) 
 
 Lembrando que toda entrada de dados é do tipo String, devemos, portanto, 
converter os valores armazenados em num1 e num2 para números inteiros através da 
função int( ). Somente então poderemos efetuar cálculos. Observe o próximo exemplo: 
 
#Converte uma String em número real 
num1 = raw_input('Entre com um numero real: ') 
num2 = raw_input('Outro numero real: ') 
print float(num1) + float(num2) 
raw_input( ) 
 
 Como podemos observar, a função float( ) converte um valor String em um 
número real para que seja possível operações de cálculos. 
 
#Converte um numero em String 
ano_nasc=raw_input('Qual o ano do seu nascimento? ') 
ano_atual='2017' 
idade=int(ano_atual)-int(ano_nasc) 
print 'Voce tem ' + str(idade) + ' anos de idade' 
raw_input( ) 
 
 Depois que estamos trabalhando com um valor numérico, também podemos 
converter esse número em String, conforme ilustrado no programa anterior. Isso é 
possível na linguagem Phyton, através do uso da função str( ). 
 
 
5.3 Funções matemáticas 
 
A linguagem de programação Python permite utilizar funções matemáticas. Para isto, 
é necessária a importação do módulo de matemática da biblioteca no seu programa. 
Vejamos um exemplo prático: 
 
 
LINGUAGEM PHYTON 2.7 58 
 
#Funcao matematica para raiz quadrada 
import math 
a = 25 
b = math.sqrt(a) 
print 'A raiz quadrada de 25 e... ' + str(b) 
raw_input( ) 
 
Utilizou-se a função math.sqr( ) para calcular a raiz quadrada de um número. Note 
que foi requerida a inclusão da biblioteca matemática através da instrução import 
math. 
No exemplo a seguir, utilizou-se a função math.pow(x, y), cujo objetivo é elevar um 
número x ao número y (x^y), ou seja, exponenciação. 
 
import math 
a = 5 
b = 3 
c = math.pow(a,b) 
print '5 ^ 3 = ' + str(c) 
raw_input( ) 
 
Vejamos outro exemplo: 
 
import math 
a = 5 
b = math.factorial(a) 
print 'O fatorial de 5 e... ' + str(b) 
raw_input( ) 
 
Neste exemplo, utilizou-se a função math.factorial( ), que permite calcular o fatorial 
de um número. 
 
 
LINGUAGEM PHYTON 2.7 59 
No próximo exemplo, utilizamos a função math.pi, que retorna o valor de pi (), ou 
seja, 3.14159265359. 
 
import math 
a = math.pi 
print 'O valor de pi e... ' + str(a) 
raw_input( ) 
 
O programa exemplo a seguir tem por objetivo utilizar as funções matemáticas 
math.sin(x), math.cos(x) e math.tan(x) para retornar um valor referente ao seno, 
cosseno e tangente de um número, respectivamente. 
 
import math 
x = float(raw_input('Digite um numero para saber o seno, 
 cosseno e tangente: ')) 
a = math.sin(x) 
b = math.cos(x) 
c = math.tan(x) 
 
print 'Seno de ' + str(x) + ' = ' + str(a) 
print 'Cosseno de ' + str(x) + ' = ' + str(b) 
print 'Tangente de ' + str(x) + ' = ' + str(c) 
raw_input( ) 
 
 
5.4 Criando novas funções 
 
Como já mostramos anteriormente, para criarmos ou declararmos uma função basta 
dar um nome ela, definindo, portanto, o seu conteúdo. Em Phyton, isso pode ser feito 
através da palavra reservada def, conforme exemplo a seguir: 
 
 
 
LINGUAGEM PHYTON 2.7 60 
def print_linguagem(): 
 print 'Eu sou Phyton...' 
 print 'A melhor linguagem de programacao do mundo!' 
 
def repeat_linguagem(): 
 print_linguagem() 
 print_linguagem() 
 
repeat_linguagem() 
raw_input( ) 
 
 Utilizou-se a instrução def print_linguagem( ): para criar ou definir uma função 
em Phyton. O mesmo ocorreu quando criou-se uma outra função através da instrução 
def repeat_linguagem( ). As chamadas das funções ocorreram, respectivamente, 
através das instruções print_linguagem( ) e repeat_linguagem( ). 
 Observe o próximo exemplo: 
 
def fibonacci(n): 
 if n < 2: 
 return n 
 else: 
 return fibonacci(n-1)+fibonacci(n-2) 
print 'Sequencia dos 10 primeiros numeros da Serie de 
 Fibonacci:' 
for x in range(10): 
 print fibonacci(x), 
raw_input( ) 
 
Neste programa exemplo, a instrução def fibonacci(n): defini uma função para calcular 
os números da série de Fibonacci. No entanto, esta função requer um valor n, que 
será passado como parâmetro para a função (veremos mais detalhes na próxima 
seção). A chamada da função ocorreu quando utilizamos a instrução print fibonacci(x), 
 
 
LINGUAGEM PHYTON 2.7 61 
que, de forma recursiva, vinculada à estrutura de iteração, foi calculando o próximo 
número da série de Fibonacci. 
 
 
5.5 Argumentos e parâmetros 
 
Quando trabalhamos com funções em Phyton, geralmente utilizamos argumentos e 
parâmetros. 
Argumentos ou parâmetros são variáveis próprias de uma função que são utilizados 
para receber valores que serão utilizados pela função. 
Essas variáveis que representam os parâmetros da funçãosão ditas locais, pois 
pertencem exclusivamente a esta função. As demais variáveis declaradas num 
programa Phyton são consideradas variáveis globais, pois podem ser utilizadas em 
qualquer parte do programa. 
 Vejamos o exemplo a seguir: 
 
 
def cubo(x): 
 return x*x*x 
 
a = int(raw_input('Entre com um numero: ')) 
print 'O cubo de ' + str(a) + ' e... ' + str(cubo(a)) 
raw_input( ) 
 
O programa exemplo tem por objetivo calcular o cubo de um número que será 
fornecido pelo usuário. Note que o parâmetro utilizado na chamada da função é 
diferente do parâmetro utilizado na declaração da função. Os argumentos devem ser 
do mesmo tipo, porém devem apresentar nomes diferentes. O valor passado como 
parâmetro na chamada da função é tecnicamente chamado de parâmetro real, 
enquanto o valor recebido e declarado como parâmetro da função cubo() é 
tecnicamente chamado de parâmetro formal. Vejamos o próximo exemplo: 
 
 
 
LINGUAGEM PHYTON 2.7 62 
def troca(x, y): 
 aux = x 
 x = y 
 y = aux 
 return x,y 
 
a = int(raw_input('Valor do 1o numero: ')) 
b = int(raw_input('Valor do 2o numero: ')) 
 
print troca(a, b) 
raw_input( ) 
 
 Neste programa, o usuário entra com dois números através do teclado e, em 
seguida, chama a função troca( ) para inverter/trocar os números digitados 
originalmente. Assim, por exemplo, se o usuário digitou os números 2 e 5, no final a 
saída produzida pela instrução print será 5 e 2, pois os números serão trocados, ou 
seja, o valor da variável a passará para a variável b, e vice-versa. 
 
5.6 Funções produtivas e funções void 
 
Algumas funções em Phyton, como as funções matemáticas, produzem, por si só, 
resultados sólidos. De acordo com Grus (2016), estas são as chamadas funções 
produtivas. 
Quando temos uma função que não retorna valor algum, dizemos que esta função é 
vazia ou simplesmente void, sem retorno. 
Então, print math.sqrt(25) é considerada uma função produtiva, e realiza_entrada( ) 
é uma função sem retorno, do tipo void. 
 
 
 
 
 
 
 
LINGUAGEM PHYTON 2.7 63 
6. Manipulando arquivos 
 
6.1 Persistência 
 
Todos os programas criados até agora manipulam dados na memória do computador. 
No entanto, programas de computador do dia a dia, na vida real, fazem as 
manipulações de dados por meio de arquivos, pois os dados manipulados na memória 
do computador têm seu armazenamento limitado e temporário; isso porque a memória 
do computador é volátil. No caso dos arquivos, permitem armazenar uma grande 
quantidade de dados e não é uma memória volátil, ou seja, os dados vão permanecer 
guardados ali, mesmo com a ausência de energia elétrica. 
Aqui, iremos aprender a manipular arquivos para que os nossos programas tenham a 
capacidade de guardar dados em grande quantidade por um período de tempo 
indeterminado. 
Por exemplo, as linhas de código abaixo permitem criar um arquivo de dados vazio, 
apenas para sinalizar a criação deste. 
 
#Simplesmente cria um arquivo vazio 
arq = open('tmp/teste.dat', 'w') 
print arq 
arq.close( ) 
raw_input('\nArquivo vazio criado com sucesso!') 
 
 Após a execução do programa, aparecerá a seguinte informação como saída: 
 
 
 
LINGUAGEM PHYTON 2.7 64 
 
 
A linguagem de programação Phyton permite manipular tanto arquivos texto quanto 
arquivos de dados. Ambos os focos são interessantes para o trabalho de um cientista 
de dados. 
 
 
6.2 Abertura de arquivo 
 
Utilizaremos a instrução open, em Phyton para realizar a abertura de um arquivo. 
Portanto, a função open retorna um objeto da classe file, que permite fazer a leitura 
e escrita em arquivos das mais diversas formas. 
Modos de abertura de arquivo do Phyton para arquivo texto: 
 
‘w’ - gravação (write) 
‘r’- leitura (read) 
‘a’ - acrescentar (append) 
 
 
 
LINGUAGEM PHYTON 2.7 65 
 O modo de abertura para gravação, ‘w’, toda vez que for executado, permite 
criar um novo arquivo, subscrevendo todo o conteúdo uma vez já criado 
anteriormente. 
arquivo = open(‘teste.txt’, ‘w’) 
 
O modo de abertura para leitura, ‘r’, permite que seja feita uma leitura do conteúdo 
do arquivo já existente. 
arquivo = open(‘teste.txt’, ‘r’) 
 
O modo de abertura para acrescentar, ‘a’, serve para manter o conteúdo já gravado 
anteriormente, acrescentando novos dados neste arquivo sem a necessidade de 
apagar os dados anteriores. 
arquivo = open(‘teste.txt’, ‘a’) 
 
Dessa forma, o arquivo que será fisicamente criado na sua unidade de armazenamento 
ficará gravado no mesmo diretório, na mesma pasta em que o programa Phyton está 
sendo executado para a criação do seu arquivo. No entanto, você poderá determinar 
um local em que deseja gravar os arquivos. Por exemplo: imagine que seus programas 
Phyton estão sendo executados a partir da pasta /progphyton e dentro dessa pasta 
existe outra pasta nomeada como /tmp, por exemplo, em que os arquivos criados 
serão armazenados. Para tanto, você deverá indicar na instrução de abertura de 
arquivo o local desejado, dessa forma: 
 
arquivo = open(‘tmp/teste.txt’, ‘w’) 
 
Você também poderá manter uma pasta para manipular arquivos diretamente no 
desktop do seu computador. Vamos utilizar um exemplo de uma pasta criada no 
desktop chamada /Local, assim: arquivo = 
open('/Users/Boente/Desktop/Local/teste.txt', 'w'). 
Note que é necessário passar todo o caminho, path, em que a pasta se encontra 
quando ela não se encontra no mesmo diretório no qual o programa está sendo 
executado. 
 
 
LINGUAGEM PHYTON 2.7 66 
 
Vejamos o exemplo da abertura de um arquivo para gravação/criação chamado 
‘arquivo.txt’. 
 
#Criacao do arquivo 
arq = open('tmp/arquivo.txt', 'w') 
arq.close() 
raw_input('Arquivo vazio criado com sucesso!') 
 
Dessa forma, um arquivo chamado ‘arquivo.txt’ foi criado sem conteúdo algum, ou 
seja, foi criado vazio. 
 
É claro que alguns comandos específicos de manipulação de arquivos da linguagem 
de programação Phyton foram utilizados. Vamos estudar o que cada um desses 
comandos faz. 
 
 A instrução open( ) permite abrir/criar um arquivo em Phyton a partir da escolha 
de um modo de abertura (‘w’, ‘r’, ‘a’), por exemplo, arq = open('tmp/arquivo.txt', 'w'). 
 
Vejamos um exemplo de criação de arquivo ainda não existente, arquivo para 
gravação, chamado ‘arquivo.txt’. Caso esse arquivo já exista, seu conteúdo será 
sobreposto, ou seja, o conteúdo antigo será apagado e substituído por um novo a ser 
registrado. 
 
#Abertura de arquivo para gravacao 
arq = open('tmp/arquivo.txt', 'w') 
texto = [] 
texto.append('Lista de Amigos\n') 
texto.append('---\n') 
texto.append('Alfredo Boente\n') 
texto.append('Renata Miranda\n') 
texto.append('Giullia Edwiges') 
 
 
LINGUAGEM PHYTON 2.7 67 
arq.writelines(texto) 
arq.close() 
raw_input('Arquivo criado com sucesso!') 
 
Este será o arquivo criado no seu diretório /tmp: 
 
 
 
 A instrução arq.writelines(texto) permite gravar linhas em um arquivo texto com 
as linhas de conteúdo de certa lista. 
 
Agora, nós iremos acrescentar outros três amigos no arquivo já criado. Para isto, 
substituiremos o modo de abertura de arquivo ‘w’, write, por ‘a’, append. 
 
#Abertura de arquivo para acrescentar novos registros 
arq = open('tmp/arquivo.txt', 'a') 
texto = [] 
texto.append('\n') 
 
 
LINGUAGEM PHYTON 2.7 68 
texto.append('Juan Gabriel\n') 
texto.append('Maria Miranda\n') 
texto.append('Sergio Albano') 
arq.writelines(texto) 
arq.close() 
raw_input('Novos Amigos gravados com sucesso!') 
 
Este será o novo conteúdo do arquivo: 
 
 
 
Podemos observar que os primeiros três nomes gravados no arquivo foram mantidos, 
sendo acrescentados, portanto, outros três novos nomes no final do arquivo. 
 Como auxílio, foi utilizada a instrução texto.append('Nome\n') para acrescentar 
novas linhas de texto em uma lista, ora definida no programa exemplo como texto = 
[]. 
 
 
 
LINGUAGEM PHYTON 2.7 69Para fazer a leitura do conteúdo do arquivo criado, utilizaremos o modo de abertura 
de arquivo ‘r’, read. 
Vamos admitir que já existisse o arquivo ‘arquivo.txt’ com o seguinte conteúdo: 
 
 
#Abertura de arquivo para leitura 
arq = open('tmp/arquivo.txt', 'r') 
texto = arq.readlines() 
for linha in texto: 
 print(linha) 
arq.close() 
raw_input('\nLeitura realizada com sucesso!') 
 
Esta será a tela de saída exibida como resultado: 
 
 
 
LINGUAGEM PHYTON 2.7 70 
 
 
 A instrução texto = arq.readlines() permite ler linhas de conteúdo do arquivo, 
adicionando-as a uma lista, que será utilizada como referência para a impressão das 
informações desse arquivo. 
 
 
6.3 Arquivo texto e linha 
 
Como podemos manipular arquivos texto e arquivos binários no Phyton, iremos 
explicar cada um deles. 
Conceitualmente, um arquivo texto representa uma sequência de linhas com registro 
de um conjunto de caracteres, da mesma forma que uma String. Dessa forma, para 
quebrar o arquivo texto em diversas linhas, busca-se utilizar o caractere especial ‘\n’, 
new line, já utilizado anteriormente em alguns programas exemplo. O new line, 
portanto, irá representar o final de uma linha e o início de outra. 
Os arquivos de dados serão aqueles cujo conteúdo das linhas representa as tuplas do 
arquivo, ou seja, os registros que compõem certos arquivos de dados. 
Os arquivos binários registram uma tupla, um registro por vez dentro do arquivo 
criado. Um arquivo texto não cria essa relação de tupla. 
 
 
LINGUAGEM PHYTON 2.7 71 
 
6.4 Lendo arquivos 
 
A leitura do conteúdo gravado no arquivo é feita através da instrução s = arquivo.read( 
). Veja o código exemplo: 
 
#Leitura de arquivo 
arquivo = open('tmp/arqnum.txt', ‘r’) 
s = arquivo.read( ) 
print s 
arquivo.close( ) 
raw_input('\nLeitura realizada com sucesso!') 
 
A saída produzida será a seguinte: 
 
 
 
Todo o arquivo é lido de uma só vez para a memória do computador. Nós abrimos o 
arquivo texto para leitura, ‘arqnum.txt’, da seguinte forma: arquivo = 
open('tmp/arqnum.txt', ‘r’). No entanto, temos a opção de suprimir o ‘r’ de read, 
leitura, conforme se segue: arquivo = open(‘tmp/arqnum.txt’). 
 
 
LINGUAGEM PHYTON 2.7 72 
Não podemos esquecer que o arquivo lido deve existir, ou seja, já deve ter sido criado. 
 
6.5 Pesquisando em arquivos 
 
Temos a opção de pesquisar dados em um arquivo sem necessariamente lê-lo 
totalmente para a memória do computador. Dessa forma, você pode processar apenas 
as linhas que se encaixam em um critério particular. Nós podemos combinar tal 
comportamento com métodos que atuam sobre String para construirmos um simples 
mecanismo de busca. Observe o exemplo a seguir: 
 
#Pesquisando em Arquivos 
arquivo = open('tmp/arqnum.txt', 'r') 
for linha in arquivo : 
 if int(linha)%2!=0: 
 print linha 
arquivo.close( ) 
raw_input('\nPesquisa realizada com sucesso!') 
 
A saída produzida pelo programa será a seguinte: 
 
 
 
 
 
LINGUAGEM PHYTON 2.7 73 
Em outras palavras, nosso programa buscou no arquivo ‘tmp/arqnum.txt’ todos os 
números que fossem ímpares e os mostrou na tela do computador como saída. 
Note que entre as linhas de dado impressas, apareceu uma linha em branco. Para 
retirar essa linha em branco, você deverá utilizar a instrução print linha.rstrip( ), como 
se segue: 
 
#Pesquisando em Arquivos 
arquivo = open('tmp/arqnum.txt', 'r') 
for linha in arquivo : 
 if int(linha)%2!=0: 
 print linha.rstrip( ) 
arquivo.close( ) 
raw_input('\nPesquisa realizada com sucesso!') 
 
 Será produzida, então, a seguinte saída: 
 
 
 
Vejamos outro exemplo de pesquisa em que iremos buscar todos os nomes dos amigos 
registrados no arquivo ‘tmp/arquivo.txt’ cujo nome seja diferente de ‘Renata Miranda’ 
ou ‘Maria Miranda’. 
 
 
 
LINGUAGEM PHYTON 2.7 74 
#Pesquisando em Arquivos 
arquivo = open('tmp/arquivo.txt', 'r') 
for linha in arquivo : 
 if linha !='Renata Miranda' or linha != 'Maria Miranda': 
 print linha 
arquivo.close( ) 
raw_input('\nPesquisa realizada com sucesso!') 
 
 Esta será a saída produzida pelo programa: 
 
 
 
 
 
6.6 Usando try, except e open 
 
No exemplo a seguir, vamos pedir para que o usuário digite o nome do arquivo que 
ele deseja abrir para leitura. Então, quando um nome de arquivo válido for digitado, o 
Phyton irá realizar o processo de leitura das informações do arquivo. No entanto, caso 
o usuário digite o nome de um arquivo inexistente, certamente seu programa dará 
erro, pois o Phyton irá tentar abrir um arquivo para leitura das informações que não 
existe. 
 
 
 
LINGUAGEM PHYTON 2.7 75 
#Tentando Abrir um Arquivo 
nome = raw_input('Digite o nome do arquivo: ') 
arquivo = open('tmp/'+nome) 
for linha in arquivo : 
 print linha.rstrip( ) 
arquivo.close( ) 
raw_input('\nPesquisa realizada com sucesso!') 
 
Para evitar esse tipo de erro, vamos agora fazer o tratamento de exceção com a 
operação de abertura de arquivo através do try/except. 
 
#Tratamento de Excecoes 
nome = raw_input('Digite o nome do arquivo:') 
try: 
 arquivo = open('tmp/'+nome) 
except: 
 print 'O arquivo '+nome+' nao pode ser aberto' 
 raw_input('\nPressione <Enter> para terminar...') 
 exit( ) 
for linha in arquivo : 
 print linha.rstrip( ) 
arquivo.close( ) 
raw_input('\nPesquisa realizada com sucesso!') 
 
 
6.7 Escrevendo arquivos 
 
Utilizaremos a instrução arquivo.write(str(val)+’\n’) para realizar o processo de 
escrita/gravação de dados no arquivo criado. 
 
#Escrevendo em arquivo 
arquivo = open('tmp/arqnum.txt', 'w') 
 
 
LINGUAGEM PHYTON 2.7 76 
val = 0 
for num in range(10): 
 val = val + 1 
 arquivo.write(str(val)+'\n') 
arquivo.close( ) 
raw_input('\nGravacao realizada com sucesso!') 
 
O arquivo criado terá o seguinte conteúdo: 
 
 
 
 
 
6.8 Fechamento de arquivos e depuração 
 
A instrução arq.close() é utilizada para fechar o arquivo que esteja aberto na memória 
do computador. 
É importante lembrar que o Phyton também permite a manipulação de arquivos do 
tipo binário. O arquivo tipo texto armazena conteúdo com caracteres ASCII do tipo 
 
 
LINGUAGEM PHYTON 2.7 77 
String, enquanto o arquivo binário irá preservar os dados gravados de acordo com os 
seus respectivos tipos. 
Em Phyton, para manipularmos um arquivo binário, devemos utilizar ‘w’, ‘r’ e ‘a’, 
acompanhados da letra ‘b’ de binário. 
Para que possamos preservar o tipo do dado que será gravado, iremos usar a função 
dump( ) da biblioteca import pickle. Observe o seguinte exemplo: 
 
#Criando Arquivo Binario 
import pickle 
arquivo = open('tmp/arquivo.dat', 'wb') 
for i in range(10): 
 pickle.dump(i, arquivo) 
arquivo.close( ) 
raw_input('\nArquivo binario criado com sucesso!') 
 
No exemplo anterior, foi criado um arquivo binário para gravação de dados no arquivo 
‘tmp/arquivo.dat’. A gravação é realizada pela instrução pickle.dump(i, arquivo). 
Vamos visualizar o próximo exemplo, em que para o mesmo arquivo, 
‘tmp/arquivo.dat’, foi criado um programa para realizar a leitura desse arquivo binário. 
 
#Lendo Arquivo Binario 
import pickle 
arquivo = open('tmp/arquivo.dat', 'rb') 
soma=0 
for i in range(10): 
 n=pickle.load(arquivo) 
 soma=soma+n 
print soma 
arquivo.close( ) 
raw_input('\nArquivo binario lido com sucesso!') 
 
 
 
LINGUAGEM PHYTON 2.7 78 
 Note que foi utilizada a instrução n=pickle.load(arquivo) para realizar a leitura 
dos registros do arquivo. 
 
 Vamos visualizar outro exemplo de criação e leitura de arquivo binário. Iremos 
manipular o arquivo ‘tmp/arqdados.dat’ para registro de nomes e idades de três 
pessoas. 
 
#Arquivo Binario Gravacao 
import pickle 
arq = open('tmp/arqdados.dat', 'wb') 
for i in range(3): 
 nome=raw_input('Digite seu nome: ') 
 idade=raw_input('Digite a sua idade: ') 
 pickle.dump(nome, arq) 
 pickle.dump(idade, arq) 
arq.close( ) 
raw_input('\nArquivo binario

Outros materiais