Luiz Guilherme F. Aldabalde Luiz Guilherme F. Aldabalde
Iniciando Iniciando no mundo do Pythonno mundo do Python
Versão.: 12/05/11
ObjetivoObjetivo
Apresentar sua origem e o seu propósitoApresentar sua origem e o seu propósito Conhecer a sintaxe da linguagemConhecer a sintaxe da linguagem Elaborar os primeiros códigosElaborar os primeiros códigos Apresentar os módulos importantesApresentar os módulos importantes Indicar outras fontes de conhecimentoIndicar outras fontes de conhecimento
De onde venho ...De onde venho ...
4
Maior Provedor do Governo de tecnologia de Informações e Comunicações
Principais Clientes: Ministério da Fazenda, Planejamento, Justiça, Transportes, Comunicação, Educação e Gabinete Civil e Presidência.
Mais de 3 bilhões de Transações/ano
Múltiplas plataformas e padrões abertos
ASP + ISP + NSP
SERPROServiço Federal de Processamento de Dados
SERPROSERPRO
ComunidadesComunidades
Python foi criada em 1990 por Guido Van Rossum. O nome da linguagem é uma homenagem ao grupo inglês de humor Monty Python. A linguagem foi concebida para ocupar o espaço que existia entre as linguagens C/C++ e o shell.
Começou assim ...Começou assim ...
oioio 7
Porque Python ?Porque Python ?
1990 Nascimento 1994 Python ?? Que isso ? 1997 – Mas ninguém usa isso. 1999 – Onde podemos encontrar programadores? 2004 – Infoworld – 6a linguagem mais utilizada 2005 Python na Nokia 2007 – A linguagem que mais cresceu (TIOBE) 2008 – Google App Engine 2009 – Melhor Linguagem Open Source (Linux New Media Award – CEBIT 2009) 2010 A linguagem que mais cresceu (TIOBE)
A evolução ...A evolução ...
oioio 9
Aplicações com PythonAplicações com Python
Encontramos o Python no :
Blender, Maya OpenOffice Zope/Plone Django BitTorrent MoinMoin Mailman Chandler Gimp Gnumeric Anaconda, Portage, Yum Trac
Nasa, United Space Alliance Google, Yahoo , YouTube Nokia, Nortel RedHat, Gentoo Apple Disney Philips Los Alamos National Laboratory ILM Industrial Ligth & Magic SERPRO, PETROBRAS Interlegis
Quem está usandoQuem está usando
Fator de sucessoFator de sucesso
Quem usa Python ?Quem usa Python ?
"Python realiza um papel chave no ciclo de produção. Sem ele um projeto do tamanho de Star Wars: Episode II seria complicado de ser realizado. Desde a renderização das multidões, passando pelo processamento em batch até a composição, Python junta todas estas coisas. Python está em todos os lugares na ILM. É usado para estender a capacidade de cada aplicação, da mesma forma promovendo uma cola entre elas. Cada Imagem de CG criada envolveu o uso de Python de alguma forma." disse o Tommy Burnette, Diretor Técnico da Industrial Light & Magic.
Quem usa Python ?Quem usa Python ?
“Nós escolhemos Python porque provê a máxima produtividade, código claro e fácil de manter, forte and extensível (e crescente !) bibliotecas, e excelente capacidade de integração com outras aplicações em qualquer plataforma.
Python atingiu ou excedeu todas as necessidades que nós tínhamos. " disse Steve Waterbury, Software Group Leader, NASA STEP Testbed.
''
oioio 14
Python substituiu o Scheme como linguagem introdutória em Engenharia e Ciência da computação no MIT.
“Principalmente por conta de suas bibliotecas que implementam interfaces para robótica” disse Gerald Jay Sussman um dos criadores do Scheme quando perguntado porque do Python no MIT.
Na universidadeNa universidade
Quem usa Python ?Quem usa Python ?
Quem usa Python ?Quem usa Python ?
“ O Serpro criou uma fábrica virtual para desenvolver portais para o governo federal. As ferramentas ZOPE e PLONE, foram selecionadas para o projeto, representaram uma economia inicial de R$ 10 milhões para a Empresa em custo de aquisição de softwares proprietários além de um aumento visível de produtividade.”Sérgio Borba Cangiano – Diretor do SERPRO à Revista Tema (2004)
TestemunhosTestemunhos
Eric Raymond
Autor: A Catedral e o Bazar
Mantenedor do Jargon File (Hacker's Dictionary)Contribuidor do GNU Emac, Linux, Fetchmail
Frases famosas: "Havendo olhos suficientes, todos os erros são óbvios"
“Entre todas as linguagens que aprendi, Python é a que menos interfere entre mim e o problema. É a mais efetiva para traduzir pensamentos em ações.”
O que Eric pensa do Python:
“Python amplifica seu cérebro.”
TestemunhosTestemunhos
Bruce Eckel
Autor de Best Sellers: “Thinking in C++” “Thinking in Java”
Autor de Best Sellers: “Thinking in C++” “Thinking in Java”
Frases Inspiradoras: ” Python: it fits your brain” “ Life is Better Without Braces” “ Life is short ! You need Python ! “ Python: Batteries Included”
Frases Inspiradoras: ” Python: it fits your brain” “ Life is Better Without Braces” “ Life is short ! You need Python ! “ Python: Batteries Included”
Palestra: Why I love Python “Python foi feito pra você “ “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a linguagem.” “Eu não preciso digitar muito. Mas o que eu digito é o certo “
Palestra: Why I love Python “Python foi feito pra você “ “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a linguagem.” “Eu não preciso digitar muito. Mas o que eu digito é o certo “
De quem é o Python ?De quem é o Python ?
Python Software Foundation
“The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.”
oioio 20
IntroduçãoIntrodução
Fácil Aprendizado (VHLL)Fácil Aprendizado (VHLL)
Fácil ManutençãoFácil Manutenção
Possui uma extensa biblioteca padrãoPossui uma extensa biblioteca padrão
Interpretada e interativaInterpretada e interativa
Possui uma poderosa estruturas de dados nativasPossui uma poderosa estruturas de dados nativas
Disponível com código aberto e livreDisponível com código aberto e livre
Interface para outras Linguagens ( Lua, Java, C) Interface para outras Linguagens ( Lua, Java, C)
Multi-plataformaMulti-plataforma
É um canivete-É um canivete-suíçosuíço !!! !!!
Presente nos Sistemas Operacionais: Windows: 9x, Me, 2K, XP Unix: HPUX, Solaris (freqüentemente préinstalada) Linux (freqüentemente préinstalada) MacOs X (sempre préinstalada) Nokia Série 60
Através de Interpretadores : CPython Jython (máquina virtual Java) IronPython .NET (em desenvolvimento na Microsoft)
MultiplataformaMultiplataforma
InterpretadoInterpretadoModo InterativoModo InterativoTipagem Dinâmica forteTipagem Dinâmica forteVery High-Level Language (VHLL)Very High-Level Language (VHLL)““Glue Language” - usada para integrar sistemas distintosGlue Language” - usada para integrar sistemas distintosGrande quantidade de bibliotecas de objetos Grande quantidade de bibliotecas de objetos Sintaxe estimula uma apresentação limpa do código Sintaxe estimula uma apresentação limpa do código Orientada a ObjetosOrientada a Objetos
CaracterísticasCaracterísticas
Código é mais vezes lido do que escrito !
Clareza na linguagem é fundamental para o aprendizado e para a manutenção do código.
Por que usar o Python ?Por que usar o Python ?
oioio 24
PYTHONPYTHON
SCRIPTSSCRIPTS
ESTRUTURADAESTRUTURADA
FUNCIONALFUNCIONAL
OOOO
Múltiplos ParadigmasMúltiplos Paradigmas
>> python [opções] [nomearquivopython]
c cmd : programa passado como string (cmd) na linha de comandoh : mensagem de ajudai : executa programa e "cai" no prompt interativoO : ativa otimizaçõesOO : mesmo que O, incluindo remoção de docstrings (documentação online)t : avisa sobre inconsistências na tabulaçãov : importação verborrágicaV : imprime número de versão
O interpretadorO interpretador
and
assert
break
class
continue
yield
def
finally
in
del
for
is
raise
elif
from
lambda
return
else
global
not
try
except
if
or
while
exec
import
pass
Palavras reservadasPalavras reservadas
29 palavras
Cada linha termina com ponto e vírgula (;) ou com um <enter > - Cada bloco de instruções é definido pela identação - Comentário em uma linha é definido pelo símbolo tralha (#)- Comentário em mais e uma linha podemos usar aspas triplas para começar e terminar (“”” texto comentado “””)- Multi linha com o uso de barra invertida (\) Uma variável não é declarada, ela assume o tipo quando associada com um valor
Começando ...Começando ...
- Numérico : Decimal, Hexa (0x1a), long 1.0l, float – 1.0 ou 1.0e-3, complexo 1.0j- Strings : “oi”, 'oi', ”””oi 'dentro' de outra”””- Tuplas : (1, “a”, 3.0)- Listas : [1,2,3,4]- Dicionários : {“DDD”: “21”, “Estado”:”RJ”}- Booleano : True ou False- Tipo Nulo : None
Tipos básicosTipos básicos
Condicional :planetas = ["Marte", "Terra", "Venus", "Plutao", "Saturno", "Jupiter"]
if type(planetas) is list: print "Tenho uma Lista"
Loop :for i in xrange(10): print i
Controle de FluxoControle de Fluxo
Enquanto :
planetas = ["Marte", "Terra", "Venus", "Plutao", "Saturno", "Jupiter"]conta = 0while planetas[conta] <> "Saturno": print planetas[conta] conta = conta + 1
Controle Controle dede Fluxo Fluxo
Show me the code ...Show me the code ...
Tratando com texto a = “Hoje vai fazer sol “ pos = a.find(“vai) novo_a = a[1:1] outro_a = a[1:-1] a_maiusculo = a.upper() d = dict(zip([“um”, “dois”, “tres”], [1,2,3]))
Show me the code ...Show me the code ...
Alguns truques : x,y = y,x # Exemplo de swap list comprehension : resultado=[x for x in xrange(50) if x%3 == 0]
Uma função pode retornar um ou mais objetos.Quanto aos parâmetros, podemos definir 5 tipos de funções :
Caso 1- Função simples : def func_simples(): print “oi” return True func_simples()
FunçõesFunções
Caso 2 - Função com parâmetros definidos: def func_soma(a, b): c = a + b return c total = func_soma(1,3)
FunçõesFunções
Caso 3 - Função com parâmetros definidos, mas valores defaults: def func_soma(a, b=2): c = a + b return c total = func_soma(1,3) total = func_soma(2)
FunçõesFunções
Caso 4 - Função com quantidade de parâmetros variáveis: #entrada é uma tupla composta pelos valores passados
def func_soma(*entrada): c = 0 for i in entrada: c = c + i return c
total = func_soma(1,3) total = func_soma(2,3,4,5)
FunçõesFunções
Caso 5 - Função com quantidade de parâmetros variáveis, mas nome de variáveis associadas:
def func_trata(**entrada):# entrada é um dicionário {chave=valor} print entrada return True total = func_trata(estado=”RJ”, cidade=”Vassouras”)
FunçõesFunções
Podemos usar uma função como uma variável dentro de um dicionário. Desta forma podemos escolher entre várias opções de maneira muito simples :
def func_um(): print “um” def func_dois(): print “dois” lista_funcoes = {“um”: func_um, “dois”: func_dois} lista_funcoes[“um”]()
FunçõesFunções
def fun_um(): “”” Descrição da função fun_um() “”” return
No modo interativo : help(fun_um) Com um browser : Pydoc -p 123
Documentando Documentando
Para permitir a chamada de outras funções, classes temos os seguintes comandos :
import nome_módulo from nome_módulo import * from nome_módulo import nome_func from nome_módulo import nome_func as alias
MódulosMódulos
Para permitir que um módulo importado não execute as rotinas que estejam fora de uma função utilizamos o seguinte recursos : if __name__ == '__main__': print “oi” Para definir um diretório como um conjunto de arquivos que serão importados basta colocar um arquivo (vazio) com este nome : __init__.py
MódulosMódulos
Definição : Capacidade da linguagem de identificar suas próprias estruturas internas, tais como tipos, escopo das variáveis, métodos e atributos.• dir( obj ) - apresenta os métodos associados ao objeto passado• type( obj ) - apresenta o tipo de um objeto.• help(obj ) - apresenta um resumo sobre o objeto documentado.
IntrospecçãoIntrospecção
O módulo __builtins__ contém as funções disponíveis por padrão quando se inicia o uso do Python. Temos : help, dir, type tuple, int, list, dict, float, long chr, ord len, sum, min, max, pow xrange open Códigos de Erro reduce, map, filter raw_input ... [ use o dir(__builtins__) para pesquisar mais.]
__builtins____builtins__
try: <comandos>except expressão ,variável: <comandos se houve exceções>else: <comandos se não houve exceções>
Tratamento de ErrosTratamento de Erros
Debug :Usando o pdb para inserir um “breakpoint” no seu código: import pdb; pdb.set_trace()Uma vez no modo interativo você pode verificar todas as variáveis, e usar os seguintes comandos : n – next, vai para a próxima linha s - step into, entra em uma sub-função ( se existir) b xx – define um novo breakpoint na linha xx c – continue l - list h – chama o help
Buscando os errosBuscando os erros
Sintaxe básica :
class segunda(primeira): def __init__(self, p1, p2): self.nome = p1 Self.ano = p2 def hello(self): print “Hello, %s” % self.nomemeu_obj = segunda(“Luiz”, 40)meu_obj.hello()
Orientação a ObjetosOrientação a Objetos
Vários módulos estão disponíveis, entre eles temos : SO: os, sys, shutils Dados: csv, pickle, shelve, zipfile Rede: email, ftplib, urllib2, urlparse, SimpleHttpServer Ferramentas Gerais : datetime, numeric, time, re,md5
Baterias IncluidasBaterias Incluidas
''''
Bancos de Dados : ODBC, MySQL, Postgres, Oracle, SQLServer, sqlite, gadfly, ZODB/Durus
Rede : Twisted, asyncore, htmllib, SimpleHTTPServer, urllib, ftplib, poplib, smtplib, telnetlib
GUI : Tkinter, wxPython, PyGTk, PyQt, PyKDE, Pythonwin
Ciência : NumPY, SciPy, BioPython, MatPlotLIb
XML : PyXML, 4Suite, ElementTree, RDFLib, Cwm
Web : ZOPE, CherryPy, Webware, Quixote, PSP, mod_python, Nevow, Django, TurboGears, Pylons
Processamento. de Imagens : PIL, PythonMagick, Gimp-python
Adicionando mais bateriasAdicionando mais baterias
Será que existem livros de Python?Será que existem livros de Python?
Dive into PythonMark Pilgrim
Livre pra download
Dive into PythonMark Pilgrim
Livre pra download
Aprendendo PythonDavid Ascher e
Mark Lutz
Aprendendo PythonDavid Ascher e
Mark Lutz
How to think like a computer scientist
Allen Downey, Jeff Elkner
and Chris Meyers Livre pra download
How to think like a computer scientist
Allen Downey, Jeff Elkner
and Chris Meyers Livre pra download
Python CookbookAlex Martelli,
Anna Ravenscroft eDavid Ascher
Python CookbookAlex Martelli,
Anna Ravenscroft eDavid Ascher
Dicas InportantesDicas Inportantes
Python para desenvolvedores Luiz Eduardo Borges
Livre para DownloadLicença Creative Commonshttp://ark4n.wordpress.com/
Livre para DownloadLicença Creative Commonshttp://ark4n.wordpress.com/
Referências LivresReferências Livres
Computação Científica com Python Flávio Coelho
http://www.lulu.com/content/616789http://www.lulu.com/content/616789
Referências a maisReferências a mais
www.python.orgwww.python.org
DocumentaçãoDocumentaçãoDocumentaçãoDocumentação
HowtosHowtosHowtosHowtos
CookBookCookBookCookBookCookBook
Muitos linksMuitos linksMuitos linksMuitos links
NotíciasNotíciasNotíciasNotícias
www.python.org.brwww.python.org.br
55
Python - python.org
PythonBrasil - www.python.org.br
PythonRio - www.pythonrio.org
APyB - associacao.pythonbrasil.org/
Lista PythonRio - br.groups.yahoo.com/group/pythonrio/
Lista PythonBrasil - br.groups.yahoo.com/group/python-brasil/
PyconBrasil 2009 - http://www.pythonbrasil.org.br/
Links Links
Alguma pergunta ?Alguma pergunta ?
Venha fazer parte desta comunidade
Luiz Guilherme F. AldabaldeLuiz Guilherme F. AldabaldeE-mail ; E-mail ; [email protected]@gmail.com [email protected]@serpro.gov.brTwitter : @aldabaldeTwitter : @aldabalde
Dedicado aDorneles Tremea
Top Related