Este documento apresenta uma introdução à linguagem de programação Python, abordando sua origem, propósito, sintaxe básica, tipos de dados, controle de fluxo, funções, módulos, documentação e tratamento de erros. O objetivo é fornecer os conceitos fundamentais para iniciar o desenvolvimento de códigos em Python.
2. Objetivo
Apresentar sua origem e o seu propósito
Conhecer a sintaxe da linguagem
Elaborar os primeiros códigos
Apresentar os módulos importantes
Indicar outras fontes de conhecimento
4. SERPRO
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
SERPRO
Serviço Federal de Processamento de Dados 4
8. A evolução ...
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)
12. 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.
13. 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.
14. Na universidade
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.
oioio 14
16. 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)
17. Testemunhos
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"
Eric Raymond
O que Eric pensa do Python:
“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.”
“Python amplifica seu cérebro.”
18. Testemunhos
Autor de Best Sellers:
Autor de Best Sellers:
“Thinking in C++”
“Thinking in C++”
“Thinking in Java”
“Thinking in Java”
Bruce Eckel
Frases Inspiradoras: ” Python: it fits your brain”
Frases Inspiradoras: ” Python: it fits your brain”
“ Life is Better Without Braces”
“ Life is Better Without Braces”
“ Life is short ! You need Python !
“ Life is short ! You need Python !
“ Python: Batteries Included”
“ Python: Batteries Included”
Palestra: Why I love Python
Palestra: Why I love Python
“Python foi feito pra você “
“Python foi feito pra você “
“Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a
“Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a
linguagem.”
linguagem.”
“Eu não preciso digitar muito. Mas o que eu digito é o certo “
“Eu não preciso digitar muito. Mas o que eu digito é o certo “
19. 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.”
20. Introdução
Fácil Aprendizado (VHLL)
Fácil Manutenção
Possui uma extensa biblioteca padrão
Interpretada e interativa
Possui uma poderosa estruturas de dados nativas
Disponível com código aberto e livre
Interface para outras Linguagens ( Lua, Java, C)
Multi-plataforma
É um canivete-suíço !!!
oioio 20
22. Características
Interpretado
Modo Interativo
Tipagem Dinâmica forte
Very High-Level Language (VHLL)
“Glue Language” - usada para integrar sistemas distintos
Grande quantidade de bibliotecas de objetos
Sintaxe estimula uma apresentação limpa do código
Orientada a Objetos
23. Por que usar o Python ?
Código é mais vezes lido do que escrito !
Clareza na linguagem é fundamental para o
aprendizado e para a manutenção do código.
26. Palavras reservadas
and del not
assert for try
break is except
class raise if
continue elif or
from while
yield
lambda exec
def
return import
finally
else pass
in global
print
29 palavras
27. Começando ...
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
29. Controle de Fluxo
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
30. Controle de Fluxo
Enquanto :
planetas = ["Marte", "Terra", "Venus", "Plutao",
"Saturno", "Jupiter"]
conta = 0
while planetas[conta] <> "Saturno":
print planetas[conta]
conta = conta + 1
31. 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]))
32. 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]
33. Funções
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()
34. Funções
Caso 2 - Função com parâmetros definidos:
def func_soma(a, b):
c = a + b
return c
total = func_soma(1,3)
35. Funçõ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)
36. Funçõ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)
37. Funçõ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”)
38. Funçõ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”]()
39. Documentando
def fun_um():
“””
Descrição da função fun_um()
“””
return
No modo interativo : help(fun_um)
Com um browser : Pydoc -p 123
40. Módulos
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
41. Mó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
42. Introspecção
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.
43. __builtins__
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.]
44. Tratamento de Erros
try:
<comandos>
except expressão ,variável:
<comandos se houve exceções>
else:
<comandos se não houve exceções>
45. Buscando os 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
50. Dicas Inportantes
How to think like aa Python Cookbook
Python Cookbook
How to think like Alex Martelli,
computer scientist
computer scientist Alex Martelli,
Allen Downey, Anna Ravenscroft ee
Anna Ravenscroft
Allen Downey, David Ascher
Jeff Elkner
Jeff Elkner David Ascher
Dive into Python
Dive into Python and Chris Meyers
and Chris Meyers Aprendendo Python
Aprendendo Python
Mark Pilgrim
Mark Pilgrim Livre pra download
Livre pra download David Ascher ee
David Ascher
Livre pra download
Livre pra download Mark Lutz
Mark Lutz
51. Referências Livres
Python para desenvolvedores
Luiz Eduardo Borges
Livre para Download
Livre para Download
Licença Creative Commons
Licença Creative Commons
http://ark4n.wordpress.com/
http://ark4n.wordpress.com/
52. Referências a mais
Computação Científica com Python
Flávio Coelho
http://www.lulu.com/content/616789
http://www.lulu.com/content/616789
57. Luiz Guilherme F. Aldabalde
E-mail ; lg.aldabalde@gmail.com
luiz.aldabalde@serpro.gov.br
Twitter : @aldabalde
Dedicado a
Dorneles Tremea
Venha fazer parte desta comunidade