Iniciando em Python

52
Iniciando em Rober Zanotto Guerra

description

Iniciando em Python

Transcript of Iniciando em Python

Page 1: Iniciando em Python

Iniciando em

Rober Zanotto Guerra

Page 2: Iniciando em Python

O que é Python???Python é Legal!

Linguagem de Programação

Altíssimo nível

Sintaxe limpa

Orientada a Objetos, procedural e funcional

Tipagem forte e dinâmica

Interpretada

Modular

Multiplataforma

Fácil aprendizado

Page 3: Iniciando em Python

HistóriaCriador Guido Van Rossum -> Criatura Python

Meados de 1989

C, Haskell, Pearl,

SmallTalk, Modulla 3

Arquitetura em C

Monty Python

Page 4: Iniciando em Python

Onde utilizar?

Desktop - GUI

Desenvolvimento web

Computação Científica

Computação em Nuvem

Programação distribuída, para redes,

Gráficos, jogos, edições de imagens e videos

Scripts, plugins, complementos...

Page 5: Iniciando em Python

Onde Roda?

Linux – Windows – Mac – Unix – Android – iOS - Symbiam

Page 6: Iniciando em Python

Versões

Python 2.7.2 (11 junho, 2011)

Python 2.6.7 (3 junho, 2011)

Python 2.5.6 (26 maio, 2011)

Python 2.4.6 (19 dezembro, 2008)

Python 2.3.7 (11 março, 2008)

Python 2.2.3 (30 maio, 2003)

Python 2.1.3 (8 abril, 2002)

Python 2.0.1 (junho 2001)

Python 1.6.1 (setembro 2000)

Python 1.5.2 (abril 1999)Python 3* (???)

Python 3.2.2 (September 4, 2011)Python 3.1.4 (June 11, 2011)

Python 3.0.1 (February 13, 2009)

http://www.python.org/download/releases/

Page 7: Iniciando em Python

Quem usa?http://wiki.python.org/moin/OrganizationsUsingPython

Page 8: Iniciando em Python

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1Coluna 2Coluna 3

Page 9: Iniciando em Python

Frameworks e GUIs

Page 10: Iniciando em Python

Usuários

Page 11: Iniciando em Python
Page 12: Iniciando em Python

Como usamos Python

Page 13: Iniciando em Python
Page 14: Iniciando em Python

Onde Programar?IDEs

Komodo

NetBeans

PyCharm

PyDev

Wingide

Pyshield

Spyder

PythonToolkit (PTK)

PyStudio

IDES GUIs

MonkeyStudio

BoaConstructor

XCodeVisualPython

Page 15: Iniciando em Python

LicençaLicença própria (compatível com a GPL);

Permitida a distribuição, comercial ou não, tanto da linguagem quanto de aplicações desenvolvidas nela, em formato binário ou código

Copyright da PSF (Python Software Foundation)

http://www.python.org/download/releases/2.7.2/license/

Page 16: Iniciando em Python

Como Instalar?http://www.python.org/download/

# yum install python

# apt-get install python

2 cliques no Windows, next...next...finish!

Page 17: Iniciando em Python

Implementações

Page 18: Iniciando em Python

+ CaracterísticasCase sensitive

Interpretador dinâmico, MUITO DINÂMICO!

Tipos Primitivos

Tudo é Objeto,

TUDO MESMO!

Python fits

your mind!

O que faremos hoje Cérebro?Hoje vamos dominar o

Python!

Page 19: Iniciando em Python

Interpretador Interativo

Page 20: Iniciando em Python
Page 21: Iniciando em Python

Ainda não!O Zen do Python, por Tim Peters

Bonito é melhor que feio.Explícito é melhor que implícito.Simples é melhor que complexo.Complexo é melhor que complicado.Linear é melhor do que aninhado.Esparso é melhor que denso.Legibilidade conta.Casos especiais não são especiais o bastante para quebrar as regras.Ainda que praticidade vença a pureza.Erros nunca devem passar silenciosamente.A menos que sejam explicitamente silenciados.Diante da ambigüidade, recuse a tentação de adivinhar.Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo.Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês.Agora é melhor que nunca.Embora nunca frequentemente seja melhor que *já*.Se a implementação é difícil de explicar, é uma má ideia.Se a implementação é fácil de explicar, pode ser uma boa ideia.Namespaces são uma boa ideia — vamos fazer mais dessas!

Page 22: Iniciando em Python
Page 23: Iniciando em Python

Operadores Aritméticos

>>> valor = 10

>>> 1 + 1

2

>>> 5 - 1

4

>>> 2 * 3

6

>>> #5 / 2 = 2 0_o>>> 5 / 2

2>>> #aaahm...

>>> 5 / 2.0 2.5

>>> #exponenciação nativa *-*

>>> 4 ** 216

Page 24: Iniciando em Python

Operadores Lógicos

>>> 1 > 2

False

>>> 2 < 5

True

>>> 5 == 5

True

>>> 5 <> 2

True

>>> 1 != 0

True

>>> #Muito interessante:>>> x = 5

>>> 1 < x < 10True

>>> a,b = 5, 2>>> a > b or b > a

True>>> a == b and a > b

False>>> not a

False

Page 25: Iniciando em Python

Identação !?

Page 26: Iniciando em Python

Operadores de Strings>>> string = "Ola Python"

>>> len(string)

10

>>> string + '!'

'Ola Python!'

>>> string[:-1]

'Ola Pytho'

>>> string[0:3]

'Ola'

>>>

>>> 'A' * 10 #Ta de palhaçada néh!?

'AAAAAAAAAA'

>>> #acho que isso lembra C... ¬¬>>> "%d - %.2f - %s" % (1, 2.5, string)

'1 - 2.50 - Ola Python'

Page 27: Iniciando em Python

Troca de variáveis em 1 linha,sem variável auxiliar,

com apenas 1 comando!

Desafio - 1

Page 28: Iniciando em Python

!D-U-V-I-D-O!

Page 29: Iniciando em Python

YEEEAH!

A , B = B, A

Page 30: Iniciando em Python

Tipos Primitivos?

ISTO NON EXZISTE!

Page 31: Iniciando em Python

TUDO É OBJETO!

Simples assim...

Page 32: Iniciando em Python

Conversões de Tipos

>>>x,y = 5, ‘5’

>>>int(y)

5

>>> float(x)

5.0

>>> str(x)

‘5’

>>> tuple(x)

>>> list(x)

>>> dict(x)

Page 33: Iniciando em Python

Tipos Booleanos

Page 34: Iniciando em Python

Condicionais

Page 35: Iniciando em Python

Loops...

Page 36: Iniciando em Python

Mas Tchê! Cade o Swith?

Page 37: Iniciando em Python

dir(op1) help(dic)

Page 38: Iniciando em Python

Manipulando Listas

Page 39: Iniciando em Python

Parâmetros flexíveis>>>def soma(valor_1 = 10, valor_2 = 5):

>>> return int(valor_1) + int(valor_2)

>>> soma(1,1)

2

>>> soma(‘10’, 1)

11

>>> soma(valor_2=10, valor_1=20)

30

>>> Soma()

15

Page 40: Iniciando em Python

_Namespaces_locals()

>>> def verLocais():

>>> string = ‘texto’

>>> lista = [1,2,3]

>>> valor = 100

>>> print locals()

{‘string’: ‘texto’, ‘lista’: [1,2,3], ‘valor’: 100

globals()

Page 41: Iniciando em Python

ClassesPara quem sabe Java

Python não tem interfaces

Mas tem herança múltipla de classes

Python não tem sobrecarga de métodos

mas tem passagem de argumentos flexível

Page 42: Iniciando em Python

Classes

Page 43: Iniciando em Python

Somar 5 + 2 e resultar em 3

Desafio - 2

Page 44: Iniciando em Python

Sobrescrita de Métodos

>>> a = soma(5)

5

>>> b = soma(2)

2

>>> a + b

Page 45: Iniciando em Python

Funciona!!!

5 + 2 = 3

Page 46: Iniciando em Python

Debugipdb

# easy_install ipython ipdb

Linnha anterior ao erro: import ipdb; ipdb.set_trace()

>> next

>> exit

Page 47: Iniciando em Python

POR QUE PYTHON???

Page 48: Iniciando em Python

Por que é......Simplesmente elegante

...Legivel

...Fácil aprendizado

...Resolve todo tipo de Problema

...Procedural, OO, Multi paradigma

...é tudo o que você desejar...

Page 49: Iniciando em Python

Algo mais avançado...#THREAD SIMPLES -------------------

>>> class MyThread(t.Thread):

>>> def run(self, texto=’’):

>>> pint self.getName() +’ ‘+ texto

>>> thread_1 = MyThread(‘Primeira Thread’)

>>> thread_2 = MyThread(‘Segunda Thread’)

>>> thread_1.start()

>>> thread_2.start()

>>> print 'fim'

Page 50: Iniciando em Python

Especialistas sobre Python:Por Marinho Brandão - Na minha opinião, a informática é uma ciência que oferece ferramentas para facilitar o dia-a-dia. E ferramentas são assim: uma hora você precisa do martelo, outra hora do porrete, o martelo sozinho não resolve as coisas, ele precisa de um prego, uma tábua e do principal: o carpiteiro. Um carpinteiro qualificado saberia fazer com o martelo o mesmo que se faria com o porrete, e vice-versa, porque ele está preparado pra fazer aquilo. Outra metáfora que pode ilustrar aqui é o de comparar um sedã, uma scania e um trator. Digamos que o Python seja o sedã, o Java seja a scânia e o C seja o trator: cada um tem sua aplicabilidade.

Page 51: Iniciando em Python

Estudos

Page 52: Iniciando em Python

Duvidas?

[email protected]