Iniciando em Python

Post on 09-Jul-2015

1.762 views 4 download

description

Iniciando em Python

Transcript of Iniciando em Python

Iniciando em

Rober Zanotto Guerra

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

HistóriaCriador Guido Van Rossum -> Criatura Python

Meados de 1989

C, Haskell, Pearl,

SmallTalk, Modulla 3

Arquitetura em C

Monty 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...

Onde Roda?

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

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/

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

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1Coluna 2Coluna 3

Frameworks e GUIs

Usuários

Como usamos Python

Onde Programar?IDEs

Komodo

NetBeans

PyCharm

PyDev

Wingide

Pyshield

Spyder

PythonToolkit (PTK)

PyStudio

IDES GUIs

MonkeyStudio

BoaConstructor

XCodeVisualPython

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/

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

# yum install python

# apt-get install python

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

Implementações

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

Interpretador Interativo

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!

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

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

Identação !?

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'

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

com apenas 1 comando!

Desafio - 1

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

YEEEAH!

A , B = B, A

Tipos Primitivos?

ISTO NON EXZISTE!

TUDO É OBJETO!

Simples assim...

Conversões de Tipos

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

>>>int(y)

5

>>> float(x)

5.0

>>> str(x)

‘5’

>>> tuple(x)

>>> list(x)

>>> dict(x)

Tipos Booleanos

Condicionais

Loops...

Mas Tchê! Cade o Swith?

dir(op1) help(dic)

Manipulando Listas

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

_Namespaces_locals()

>>> def verLocais():

>>> string = ‘texto’

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

>>> valor = 100

>>> print locals()

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

globals()

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

Classes

Somar 5 + 2 e resultar em 3

Desafio - 2

Sobrescrita de Métodos

>>> a = soma(5)

5

>>> b = soma(2)

2

>>> a + b

Funciona!!!

5 + 2 = 3

Debugipdb

# easy_install ipython ipdb

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

>> next

>> exit

POR QUE PYTHON???

Por que é......Simplesmente elegante

...Legivel

...Fácil aprendizado

...Resolve todo tipo de Problema

...Procedural, OO, Multi paradigma

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

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'

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.

Estudos

Duvidas?

roberzguerra@gmail.com