python: programação divertida novamente

43
Python Python Programação divertida novamente Davi Lima Rodrigo Amaral Evento 3 Kg de TI Aracaju, março de 2011

Upload: rodrigo-amaral

Post on 29-Jan-2018

19.836 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Python: programação divertida novamente

PythonPythonProgramação divertida novamente

Davi LimaRodrigo Amaral

Evento 3 Kg de TIAracaju, março de 2011

Page 2: Python: programação divertida novamente

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

Page 3: Python: programação divertida novamente

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

Page 4: Python: programação divertida novamente

O ambiente faz diferençaO ambiente faz diferença

4

Bem HumoradoInspirado no grupo

Monty Python

Page 5: Python: programação divertida novamente

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

Page 6: Python: programação divertida novamente

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.

Page 7: Python: programação divertida novamente

Facilitando a sua vidaFacilitando a sua vida

7

print “Hello, world!”

Page 8: Python: programação divertida novamente

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

Page 9: Python: programação divertida novamente

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

Page 10: Python: programação divertida novamente

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

Page 11: Python: programação divertida novamente

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

Page 12: Python: programação divertida novamente

Na prática funciona assimNa prática funciona assimPython possui...

...ambiente interativo.

12

Page 13: Python: programação divertida novamente

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!

Page 14: Python: programação divertida novamente

Casos de sucessoCasos de sucesso

14

Algumas empresas que usam Python em diversas aplicações

Page 15: Python: programação divertida novamente

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

Page 16: Python: programação divertida novamente

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

Page 17: Python: programação divertida novamente

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”

Page 18: Python: programação divertida novamente

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

Page 19: Python: programação divertida novamente

OperadoresOperadores

19

<< menor

<=<= menor ou igual

==== igual

Comparação

>> maior

>=>= maior ou igual

!=!= diferente

Page 20: Python: programação divertida novamente

OperadoresOperadores

20

Lógicos

andand, or or e not notAtribuição

==Presença em seqüências

ininSubstituição em strings

%%

Page 21: Python: programação divertida novamente

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!”

Page 22: Python: programação divertida novamente

Estruturas de controleEstruturas de controle

22

forfor

for contador in range(10): if contador % 2: print “%d é ímpar” % contador else: print “%d é par” % contador

Page 23: Python: programação divertida novamente

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

Page 24: Python: programação divertida novamente

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

Page 25: Python: programação divertida novamente

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

Page 26: Python: programação divertida novamente

StringsStrings

26

Métodos principais

.lower()

.upper()

.replace()

.split()

.join()

Manipulação

Slicing

Page 27: Python: programação divertida novamente

ListasListas

27

[ ]

Page 28: Python: programação divertida novamente

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

Page 29: Python: programação divertida novamente

ListasListas

29

Métodos principais:

.append()

.count()

.extend()

.insert()

.pop()

.remove()

.reverse()

.sort()

Page 30: Python: programação divertida novamente

ListasListas

30

Slicing

Page 31: Python: programação divertida novamente

DicionáriosDicionários

31

{ }

Page 32: Python: programação divertida novamente

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

Page 33: Python: programação divertida novamente

DicionáriosDicionários

33

Métodos principais:

.keys()

.values()

.get()

.has_key()

.pop()

Page 34: Python: programação divertida novamente

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

Page 35: Python: programação divertida novamente

FunçõesFunções

35

def esperar(quem): return “Ninguém espera a %s!” % quem

Declarando uma função simples

Page 36: Python: programação divertida novamente

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)

Page 37: Python: programação divertida novamente

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

Page 38: Python: programação divertida novamente

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

Page 39: Python: programação divertida novamente

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

Page 40: Python: programação divertida novamente

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

Page 41: Python: programação divertida novamente

Python User Group de Sergipe - PUG-SE

http://groups.google.com/group/pug-se

http://is.gd/PythonSergipe

41

Page 42: Python: programação divertida novamente

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

Page 43: Python: programação divertida novamente

Obrigado!Obrigado!

43