Luiz Eduardo Borges. Novatec



Documentos relacionados
Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Desenvolvendo Websites com PHP

Wilson Moraes Góes. Novatec

Luiz Eduardo Borges. Novatec

Harrison Kinsley Will McGugan

David Hows Peter Membrey Eelco Plugge

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

André Gugliotti. Novatec

Primeiros Passos com o Raspberry Pi

* Técnicas Avançadas. Desenvolvimento de SOFTWARES. Sistemas de Gerenciamento de Conteúdo com Joomla e Magento

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Sistemas Operacionais. Prof. André Y. Kusumoto

Parte IX. Luiz Eduardo Borges

Criando Relatórios com PHP

Manual do Usuário do Integrador de Notícias de Governo

Edgar Gomes de Abreu

Fundamentos de programação em Python. Introdução a Linguagem Python. Dino Magri

O Gerenciamento de Documentos Analógico/Digital

Portal do Projeto Tempo de Ser

Desenvolvendo Websites com PHP

Ricardo R. Lecheta. Novatec

Julia Elman e Mark Lavin. Novatec

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Criando Aplicações Gráficas com PHP

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

2-Introdução e Conceitos Básicos das TIC

Python. Introdução à Programação SI1 - BSI

Visualizador de Documentos Fiscais Eletrônicos FAQ (Perguntas frequentes)

LINX POSTOS AUTOSYSTEM

Google Android para Tablets

Prezado aluno, 1 - ) Clique no link que segue: ) Clique em iniciar teste: 3-) Verifique a velocidade:

Jonathan Stark Brian Jepson

Atualização, Backup e Recuperação de Software. Número de Peça:

Ricardo Lino Olonca. Novatec

Atualizações de Software Guia do Usuário

Aprendendo Programação. ios. Alasdair Allan. Novatec

agility made possible

Luiz Carlos Querino Filho

Introdução à Programação com Python

Movie Maker. Fazer download de vídeos no You Tube. Para publicar no You Tube. O Windows Movie Maker 2 torna fácil para qualquer pessoa

Design Centrado no Usuário

Hélio Engholm Jr. Novatec

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

Introdução ao Android

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos

Desenvolvendo Websites com PHP

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Lógica de Programação

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO COORDENADORIA DE SUPORTE TÉCNICO AOS USUÁRIOS MANUAL DE ACESSO AO PORTAL DE APLICAÇÕES DO GABINETE VIRTUAL

Manual do KGeography. Anne-Marie Mahfouf Kushal Das Tradução: Luiz Fernando Ranghetti

SISTEMA OPERACIONAL - WINDOWS

Kenneth Reitz Tanya Schlusser

Programação de Computadores - I. Profª Beatriz Profº Israel

Tutorial de Computação Programação em Python para MEC1100 v

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

Crie Seu Próprio Site

Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One.

Introdução à Engenharia de Computação

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Ruby. Simplicidade e produtividade

Software Livre e Engenharia Elétrica

Atualização, backup e recuperação de software

Paradigmas de Linguagens de Programação

PROJETO CEMEA. Um trabalho educacional

Introdução à Programação Aula 2 Introdução à linguagem Python

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

Capítulo 13 Pastas e Arquivos

MARKETING DIGITAL NA ERA. Martha Gabriel CONCEITOS, PLATAFORMAS E ESTRATÉGIAS. Novatec

Guia do Usuário. idocs Content Server v

Medical Office 2015 Instruções de Instalação e Configuração

SISTEMA OPERACIONAL MAC OS

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

Descrição do Produto. Altus S. A. 1


18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

NAPNE / SIEP. Softwares Educativos MANUAL GCOMPRIS

Computador Digital Circuitos de um computador (Hardware)

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

GNU Image Manipulation Program, mais conhecido pelo acrônimo GIMP.

CENTRO UNIVERSITÁRIO DE ENSINO SUPERIOR DO AMAZONAS - CIESA CENTRO DE PROCESSAMENTO DE DADOS CPD MANUAL DE UTILIZAÇÃO DO MOODLE 2.

CONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO)

Especificação do Trabalho

APOIO À ATIVIDADE DE ANÁLISE DESCRITIVA DESENVOLVIDA NA OFICINA ESTATÍSTICA PARA TODOS"

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Migrando para o Word 2010

Nero AG SecurDisc Viewer

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec

MANUAL DA SECRETARIA

PowerPoint 2010 para o Office 365 para empresas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Transcrição:

Luiz Eduardo Borges Novatec

Copyright 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-405-2 MP20141001 Histórico de impressões: Outubro/2014 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 E-mail: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

capítulo 1 Introdução Python 1 é uma linguagem de altíssimo nível orientada a objeto, de tipagem dinâmica e forte, interpretada e interativa. Características O Python tem uma sintaxe clara e concisa que favorece a legibilidade do código-fonte, tornando a linguagem mais produtiva. A linguagem inclui diversas estruturas de alto nível (listas, dicionários, data/hora, complexos e outras) e uma vasta coleção de módulos prontos para uso, além de frameworks de terceiros que podem ser adicionados. Também inclui recursos encontrados em outras linguagens modernas, tais como geradores, introspecção, persistência, metaclasses e unidades de teste. Multiparadigma, a linguagem suporta programação modular e funcional, além da orientação a objetos. Mesmo os tipos básicos no Python são objetos. A linguagem é interpretada através de bytecode pela máquina virtual Python, tornando o código portável. Com isso é possível compilar aplicações em uma plataforma e rodar em outros sistemas ou executar direto do código-fonte. Python é um software de código aberto (com licença compatível com a General Public License [GPL], porém menos restritiva, permitindo que o Python seja inclusive incorporado em produtos proprietários). A especificação da linguagem é mantida pela Python Software Foundation 2 (PSF). 1 Página oficial: http://www.python.org/. 2 Endereço na internet da PSF: http://www.python.org/psf/. 14

Capítulo 1 Introdução 15 Além de ser utilizado como linguagem principal no desenvolvimento de sistemas, o Python também é muito utilizado como linguagem script em vários softwares, permitindo automatizar tarefas e adicionar novas funcionalidades, entre eles: LibreOffice, PostgreSQL e Blender. É possível integrar o Python a outras linguagens, como a Linguagem C e Fortran. Em termos gerais, a linguagem apresenta muitas similaridades com outras linguagens dinâmicas, como Perl e Ruby. Histórico A linguagem foi criada em 1990 por Guido van Rossum, no Instituto Nacional de Pesquisa para Matemática e Ciência da Computação da Holanda (CWI), e tinha originalmente foco em usuários como físicos e engenheiros. O Python foi concebido a partir de outra linguagem existente na época, chamada ABC. Hoje, a linguagem é bem aceita na indústria por empresas de alta tecnologia, tais como: Google (aplicações web) Yahoo (aplicações web) Microsoft (IronPython: Python para.net) Nokia (disponível para as linhas recentes de celulares e PDAs) Disney (animações 3D) A linguagem está na versão 3, que foi lançada no final de 2008 e quebra a compatibilidade com as versões anteriores, com o objetivo de consertar falhas. Versões A implementação oficial do Python é mantida pela PSF e escrita em C, por isso é também conhecida como CPython. A versão estável mais recente está disponível para download no endereço: http://www.python.org/download/

16 Python para Desenvolvedores Para a plataforma Windows, basta executar o instalador. Para outras plataformas, como em sistemas Linux, geralmente o Python já faz parte do sistema, porém em alguns casos pode ser necessário compilar e instalar o interpretador a partir dos arquivos-fonte. Existem também implementações de Python para.net (IronPython), JVM (Jython) e em Python (PyPy). Executando programas Exemplo de programa em Python: # Uma lista de instrumentos musicais instrumentos = ['Baixo', 'Bateria', 'Guitarra'] # Para cada nome na lista de instrumentos for instrumento in instrumentos: # mostre o nome do instrumento musical print(instrumento) usaída: Baixo Bateria Guitarra No exemplo, instrumentos é uma lista que contém os itens Baixo, Bateria e Guitarra. Já instrumento é um nome que corresponde a cada um dos itens da lista, conforme o laço é executado. Os arquivos-fonte são identificados geralmente pela extensão.py e podem ser executados diretamente pelo interpretador: python apl.py Assim o programa apl.py será executado. No Windows, as extensões de arquivo.py,.pyw,.pyc e.pyo são associadas ao Python automaticamente durante a instalação, então é só clicar no arquivo para executar. Os arquivos.pyw são executados com uma versão alternativa do interpretador que não abre a janela de console.

Capítulo 1 Introdução 17 Tipagem dinâmica Python utiliza tipagem dinâmica, o que significa que o tipo de uma variável é inferido pelo interpretador em tempo de execução (isto é conhecido como Duck Typing). No momento em que uma variável é criada através de atribuição, o interpretador define um tipo para a variável, com as operações que podem ser aplicadas. A tipagem do Python é forte, ou seja, o interpretador verifica se as operações são válidas e não faz coerções automáticas entre tipos incompatíveis. Para realizar a operação entre tipos não compatíveis, é necessário converter explicitamente o tipo da variável ou das variáveis antes da operação. Compilação e interpretação O código-fonte é traduzido pelo Python para bytecode, que é um formato binário com instruções para o interpretador. O bytecode é multiplataforma e pode ser distribuído e executado sem fonte original. Ao contrário de um executável compilado para linguagem de máquina, a execução do programa em formato bytecode ainda requer interpretador. Uma visão simplificada do processo pode ser vista na figura 1.1. Figura 1.1 Visão geral do processo de compilação usando bytecode.

18 Python para Desenvolvedores Por padrão, o interpretador compila o código e armazena o bytecode em disco, em uma pasta chamada pycache, para que, na próxima vez em que o executar, não precise compilar novamente o programa, reduzindo o tempo de carga na execução. Se os arquivos fontes forem alterados, o interpretador se encarregará de regerar o bytecode automaticamente, mesmo utilizando o shell interativo. Quando um programa ou um módulo é evocado, o interpretador realiza a análise do código, converte para símbolos, compila (se não houver bytecode atualizado em disco) e executa na máquina virtual Python. O bytecode é armazenado em arquivos com extensão.pyc (bytecode normal) ou.pyo bytecode otimizado). O bytecode também pode ser empacotado junto ao interpretador em um executável, para facilitar a distribuição da aplicação, eliminando a necessidade de instalar Python em cada computador. Modo interativo O interpretador Python pode ser usado de forma interativa, na qual as linhas de código são digitadas em um prompt (linha de comando) semelhante ao shell do sistema operacional. Para evocar o modo interativo, basta executar o interpretador (se ele estiver no path do sistema operacional): python Ele estará pronto para receber comandos após o surgimento do sinal de espera >>> na tela: Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> No Windows, o modo interativo está disponível também por meio do ícone Python (command line).

Capítulo 1 Introdução 19 O modo interativo é uma característica diferencial da linguagem, pois é possível testar e modificar trechos de código antes da inclusão do código em programas, fazer extração e conversão de dados ou mesmo analisar o estado dos objetos que estão em memória, entre outras possibilidades. Ferramentas Existem muitas ferramentas de desenvolvimento para Python, como IDEs, editores e shells (que aproveitam a capacidade interativa do Python). Integrated Development Environments (IDEs) são pacotes de software que integram várias ferramentas de desenvolvimento em um ambiente consistente, com o objetivo de aumentar a produtividade do desenvolvedor. Geralmente, as IDEs incluem recursos como syntax highlight (código-fonte colorizado conforme a sintaxe da linguagem), navegadores de código, shell integrado e code completion (o editor apresenta durante a digitação formas possíveis de completar o texto que ele consegue identificar). Entre as IDEs que suportam Python, encontram-se: PyScripter 3. Eric 4. PyDev 5 (plug-in para a IDE Eclipse). Existem também editores de texto especializados em código de programação, que têm funcionalidades como colorização de sintaxe, exportação para outros formatos e conversão de codificação de texto. Esses editores suportam diversas linguagens de programação, dentre elas o Python: SciTE 6. Notepad++ 7. 3 Disponível em http://code.google.com/p/pyscripter/. 4 Site: http://eric-ide.python-projects.org/. 5 Disponível em http://pydev.org/. 6 Site: http://www.scintilla.org/scite.html. 7 Download de fontes e binários em: http://notepad-plus.sourceforge.net/br/site.htm.

20 Python para Desenvolvedores Shell é o nome dado aos ambientes interativos para execução de comandos, que podem ser usados para testar pequenas porções de código e para atividades como data crunching (extração de informações de interesse de massas de dados e a subsequente tradução para outros formatos). Além do próprio shell padrão do Python, existem outros disponíveis, como o IPython, que têm diversos recursos interativos, como completar comandos automaticamente. Os empacotadores são utilitários usados para construir executáveis que englobam o bytecode, o interpretador e outras dependências, permitindo que o aplicativo rode em máquinas sem Python instalado, o que facilita a distribuição de programas. Entre empacotadores feitos para Python, está disponível o cx_freeze, que é portável e suporta várias versões do interpretador. Frameworks são coleções de componentes de software (bibliotecas, utilitários e outros) que foram projetados para ser utilizados por outros sistemas. Alguns frameworks disponíveis mais conhecidos: Web: Django, Pyramid e Flask. Interface gráfica: PyGTK e PyQt. Processamento científico: NumPy e SciPy. Processamento de imagens: Pillow. 2D: Matplotlib e Pycairo. 3D: Visual Python e PyOpenGL. Mapeamento objeto-relacional: SQLAlchemy.

Capítulo 1 Introdução 21 Cultura O nome Python foi tirado por Guido van Rossum do programa da TV britânica Monty Python Flying Circus, e existem várias referências na documentação da linguagem ao programa, como, por exemplo, o repositório oficial de pacotes do Python se chamava Cheese Shop, que era o nome de um dos quadros do programa. Atualmente, o nome do repositório é Python Package Index 8 (PyPI). A comunidade de usuários de Python criou algumas expressões para se referir aos assuntos relacionados à linguagem. Neste jargão, o termo Pythonic é usado para indicar que algo é compatível com as premissas de projeto do Python, e Unpythonic significa o oposto. Já o usuário da linguagem é chamado de Pythonist. As metas do projeto foram resumidas por Tim Peters em um texto chamado Zen of Python, que está disponível no próprio Python através do comando: import this O texto enfatiza a postura pragmática do Benevolent Dictator for Life (BDFL), como Guido é conhecido na comunidade Python. Propostas para melhoria da linguagem são chamadas de PEPs (Python Enhancement Proposals), que também servem de referência para novos recursos a serem implementados na linguagem. Além do site oficial, outras boas fontes de informação sobre a linguagem são: PythonBrasil 9, o site da comunidade Python no Brasil, com bastante informação em português, e Python Cookbook 10, site que armazena receitas pequenas porções de código para realizar tarefas específicas. 8 Endereço: http://pypi.python.org/pypi. 9 Endereço: http://www.python.org.br/. 10 Endereço: http://aspn.activestate.com/aspn/python/cookbook/.