Download - Python: programação divertida novamente
PythonPythonProgramação divertida novamente
Davi LimaRodrigo Amaral
Evento 3 Kg de TIAracaju, março de 2011
Como tudo começouComo tudo começou
Quem?
Guido van Rossum
Onde?
Centrum voor Wiskunde en Informatica (CWI) - Amsterdã, Holanda
Quando?
1989 (primeira versão em 1991)
2
A palavra é A palavra é simplicidadesimplicidade
Python foi criada para facilitar o ensino
e o uso da programação como
ferramenta para não-programadores,
tais como físicos, químicos e até
cientistas sociais.
3
O ambiente faz diferençaO ambiente faz diferença
4
Bem HumoradoInspirado no grupo
Monty Python
Facilitando a sua vidaFacilitando a sua vida
O que é mais importante para você?
(a)(a) Usar seu tempo para lidar com os detalhes da
linguagem de programação
(b)(b) Ter tempo para pensar na solução de
problemas
5
Facilitando a sua vidaFacilitando a sua vidaO compromisso principal de Python é não ficar não ficar entre o programador e o problema a ser entre o programador e o problema a ser resolvidoresolvido.
6
Afinal, nossos prazos já são curtos o suficiente para ainda perdermos tempo “brigando” com a ferramenta que deveria estar lá para nos ajudar.
Facilitando a sua vidaFacilitando a sua vida
7
print “Hello, world!”
Na prática funciona assimNa prática funciona assimPython é...
...orientada a objetos, mas também com suporte aos paradigmas estruturado e funcional.
...dinamicamente tipada, porém com tipagem forte.
...multiplataforma. Roda em Unix/Linux, Windows, Mac OS X, OS/2, Amiga, PalmOS, celulares Nokia etc.
...interpretada (máquina virtual + bytecode).
8
Na prática funciona assimNa prática funciona assimPython é...
...orientada a objetos, mas também com suporte aos paradigmas estruturado e funcional.
...dinamicamente tipada, porém com tipagem forte.
...multiplataforma. Roda em Unix/Linux, Windows, Mac OS X, OS/2, Amiga, PalmOS, celulares Nokia etc.
...interpretada (máquina virtual + bytecode).
9
Na prática funciona assimNa prática funciona assimPython é...
...orientada a objetos, mas também com suporte aos paradigmas estruturado e funcional.
...dinamicamente tipada, porém com tipagem forte.
...multiplataforma. Roda em Unix/Linux, Windows, Mac OS X, OS/2, Amiga, PalmOS, celulares Nokia etc.
...interpretada (máquina virtual + bytecode).
10
Na prática funciona assimNa prática funciona assimPython é...
...orientada a objetos, mas também com suporte aos paradigmas estruturado e funcional.
...dinamicamente tipada, porém com tipagem forte.
...multiplataforma. Roda em Unix/Linux, Windows, Mac OS X, OS/2, Amiga, PalmOS, celulares Nokia etc.
...interpretada (máquina virtual + bytecode).
11
Na prática funciona assimNa prática funciona assimPython possui...
...ambiente interativo.
12
Python já vem com pilhasPython já vem com pilhas
13
A biblioteca padrão do Python (Python Standard Library) possui praticamente todos os recursos necessários para desenvolver aplicações com as mais variadas finalidades.
Interfaces gráficas, XML, TCP, HTTP, SMTP, HTML, XML-RPC... basta abrir a embalagem e sair usando!
Casos de sucessoCasos de sucesso
14
Algumas empresas que usam Python em diversas aplicações
O Zen do PythonO Zen do Python
15
2) Leia com atenção o resultado do comando e reflita.
Lição de casa
1) Experimente digitar no prompt do interpretador interativo:>>> import this
ComentáriosComentários
16
##Todo o texto entre um símbolo # e o final de uma linha é considerado um comentário.
# isto é um comentário
print “Hello, world!” # isto também é um comentário
IndentaçãoIndentação
17
A indentação possui papel fundamental em Python, pois é ela que delimita os blocos de código. É isso mesmo: nada de begin e end ou de { e }.
if a > b: print “Maior”else: print “Menor”
IdentificadoresIdentificadores
18
Devem começar sempre com uma letra ou sublinhado (“_”) seguido de letras, dígitos ou sublinhado (“_”).
Maiúsculas e minúsculas são distintas entre si (case-sensitive)
a = 1 # válido_a = 2 # válidoa2_b = 3 # válido2b = 4 # erro de sintaxe
OperadoresOperadores
19
<< menor
<=<= menor ou igual
==== igual
Comparação
>> maior
>=>= maior ou igual
!=!= diferente
OperadoresOperadores
20
Lógicos
andand, or or e not notAtribuição
==Presença em seqüências
ininSubstituição em strings
%%
Estruturas de controleEstruturas de controle
21
if ... elif ... elseif ... elif ... else
if hora >= 6 and hora < 12: print “Bom dia!”elif hora >= 12 and hora < 18: print “Boa tarde!”else: print “Boa noite!”
Estruturas de controleEstruturas de controle
22
forfor
for contador in range(10): if contador % 2: print “%d é ímpar” % contador else: print “%d é par” % contador
Tipos numéricosTipos numéricos
23
Inteiros>>> resposta_inteira = 42>>> divisao_de_inteiros = 42 /8>>> print divisao_de_inteiros5
Booleanos
>>> zero = False>>> um = True
Objetos avaliados como False em PythonConjuntos vazios: [], (), {}Número 0None
Tipos numéricosTipos numéricos
24
Ponto flutuante
>>> pi = 3.14>>> avogadro = 6.02e+023>>> dois = 2.0>>> meio = .5
Complexos
>>> real_imaginario = 5.0 + 4j
StringsStrings
25
Sequências de caracteres
Imutáveis
Delimitadas por aspas simples (' ') ou duplas (“”)
simples = “uma linha” # linha única
linhas = “””Texto em maisde uma linha””” # múltiplas linhas
StringsStrings
26
Métodos principais
.lower()
.upper()
.replace()
.split()
.join()
Manipulação
Slicing
ListasListas
27
[ ]
ListasListas
28
Conjuntos ordenados cujos itens são acessíveis por índices numéricos
Podem ser heterogêneas
São mutáveis, seus valores podem ser alterados, assim como a lista pode crescer ou diminuir
ListasListas
29
Métodos principais:
.append()
.count()
.extend()
.insert()
.pop()
.remove()
.reverse()
.sort()
ListasListas
30
Slicing
DicionáriosDicionários
31
{ }
DicionáriosDicionários
32
Conjuntos mutáveis e heterogêneos de objetos, como as listas.
O acesso e manipulação de seus elementos, porém, é feito por índices arbitrários, não necessariamente numéricos.
Tais índices são chamados de chaves do dicionário e necessitam ser objetos imutáveis
Funcionam como mapas
DicionáriosDicionários
33
Métodos principais:
.keys()
.values()
.get()
.has_key()
.pop()
Orientação a ObjetosOrientação a Objetos
34
Funções
Entradas (parâmetros)Posicionais (obrigatórios)
Nomeados (opcionais)
Saídas (return)
Classes
Fôrma para instâncias
Atributos
Métodos
Herança
FunçõesFunções
35
def esperar(quem): return “Ninguém espera a %s!” % quem
Declarando uma função simples
FunçõesFunções
36
def esperar(quem=“Inquisição Espanhola”): return “Ninguém espera a %s!” % quem
Função com valor de argumento padrão (default)
FunçõesFunções
37
def roer(lugar): return “O rato roeu a roupa do rei de %s” % lugar
Função com conjunto de argumentos posicionais
FunçõesFunções
38
def roer(lugar=“Roma”): return “O rato roeu a roupa do rei de %s” % lugar
Função com conjunto de argumentos nomeados
Para saber maisPara saber maisSite Oficial
www.python.org
Documentação
docs.python.org
Grupo de Discussão
comp.lang.python
IRC
#python @ irc.freenode.net
39
No BrasilNo BrasilSite Oficial
www.python.org.br
Associação Python Brasil
associacao.python.org.br
Lista de Discussão
br.groups.yahoo.com/group/python-brasil
IRC
#python-br @ irc.freenode.org
40
Python User Group de Sergipe - PUG-SE
http://groups.google.com/group/pug-se
http://is.gd/PythonSergipe
41
CréditosCréditosGuido van Rossum
http://www.python.org/doc/essays/ppt/hp-training/index.htm
Gustavo Barbieri
http://palestras.gustavobarbieri.com.br/python-5hs/
Osvaldo Santana
http://www.slideshare.net/osantana/python-para-programadores/
Async Open Source
http://www.async.com.br/projects/python/pnp/
42
Obrigado!Obrigado!
43