Escolar Documentos
Profissional Documentos
Cultura Documentos
10 raz
oes para aprender Python
24 de novembro de 2011
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Entusiasta de software de c
odigo aberto
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Multiplataforma
Interpretada
Ambiente interativo
10
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
1 - Python e legal
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Simples
Legvel
Clara
Simplificada
Sofisticada
Poderosa
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
InVesalius
Async: Stoq
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
brasil.gov.br
uiner.com
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
vericia.com
ucs.br
serpro.gov.br
atepassar.com.br
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
empregos.trovitbrasil.com.br/python
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
twitter.com/python_jobs
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
import clr
clr . AddReference ( " System . Windows . Forms " )
from System . Windows . Forms import *
class FormV3 ( Form ):
def __init__ ( self ):
self . Text = Hello World
self . Controls . Add ( Label ( Text = Enter Message : ))
self . txtMessage = TextBox ( Left =100)
self . Controls . Add ( self . txtMessage )
msgButton = Button ( Text = Message , Left =20 , Top =25)
msgButton . Click += self . OnMsgButtonClick
self . Controls . Add ( msgButton )
def O n M s g B uttonClick ( self , * args ):
MessageBox . Show ( self . txtMessage . Text , " Message " )
Application . Run ( FormV3 ())
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
9 - Python e multiplataforma
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
9 - Python e multiplataforma
XO/OLPC
Grande parte do projeto e desenvolvida em Python, incluindo:
1
O sistema de arquivos
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
9 - Python e multiplataforma
Dispositivos m
oveis
Android
Symbian
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Iphone
Meego/Maemo
10 - Python e multiparadigma
Programac
ao Estruturada
import random
def jogaDados ():
dado1 = random . randrange (1 ,7)
dado2 = random . randrange (1 ,7)
somaTemp = dado1 + dado2
print " Jogador tirou % d + % d = % d " %( dado1 , dado2 , somaTemp )
return somaTemp
soma = jogaDados ()
if soma == 7 or soma == 11:
situacaoJogo = " GANHOU "
elif soma == 2 or soma == 3 or soma == 12:
situacaoJogo = " PERDEU "
else :
situacaoJogo = " CONTINUA "
meuPonto = soma
print " Ponto : " , meuPonto
while situacaoJogo == " CONTINUA " :
soma = jogaDados ()
if soma == meuPonto : situacaoJogo = " GANHOU "
elif soma == 7: situacaoJogo = " PERDEU "
if situacaoJogo == " GANHOU " : print " Jogador ganha "
else : print " Jogador perde "
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
10 - Python e multiparadigma
Programac
ao Orientada a Objetos
class Fracao ( object ):
def __mdc ( self , m , n ):
if m % n == 0:
return n
else :
return self . __mdc (n , m % n )
def __init__ ( self , numerador , denominador =1):
g = self . __mdc ( numerador , denominador )
self . numerador = numerador / g
self . denominador = denominador / g
def __repr__ ( self ):
return " % d /% d " %( self . numerador ,
self . denominador )
def __mul__ ( self , outro ):
if isinstance ( outro , int ):
outro = Fracao ( outro )
return Fracao ( self . numerador * outro . numerador ,
self . denominador * outro . denominador )
__rmul__ = __mul__
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
10 - Python e multiparadigma
Programac
ao Funcional
# Primos menores que 1000
print filter ( None , map ( lambda y : y * reduce ( lambda x , y : x * y !=0 ,
map ( lambda x , y = y : y %x , range (2 , int ( pow (y ,0.5)+1))) ,1) , range (2 ,1000)))
# F i b o n a c c i : 10 p r i m e i r o s numeros
print map ( lambda x , f = lambda x , f :( x <=1) or ( f (x -1 , f )+ f (x -2 , f )): f (x , f ) ,
range (10))
# C o n j u n t o de M a n d e l b r o t
print ( lambda Ru , Ro , Iu , Io , IM , Sx , Sy : reduce ( lambda x , y : x +y , map ( lambda y ,
Iu = Iu , Io = Io , Ru = Ru , Ro = Ro , Sy = Sy , L = lambda yc , Iu = Iu , Io = Io , Ru = Ru , Ro = Ro , i = IM ,
Sx = Sx , Sy = Sy : reduce ( lambda x , y : x +y , map ( lambda x , xc = Ru , yc = yc , Ru = Ru , Ro = Ro ,
i =i , Sx = Sx , F = lambda xc , yc ,x ,y ,k , f = lambda xc , yc ,x ,y ,k , f :( k <=0) or ( x * x + y * y
>=4.0) or 1+ f ( xc , yc , x *x - y * y + xc ,2.0* x * y + yc ,k -1 , f ): f ( xc , yc ,x ,y ,k , f ): chr (
64+ F ( Ru + x *( Ro - Ru )/ Sx , yc ,0 ,0 , i )) , range ( Sx ))): L ( Iu + y *( Io - Iu )/ Sy ) , range ( Sy
))))( -2.1 , 0.7 , -1.2 , 1.2 , 30 , 80 , 24)
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Python Brasil[7]
Encontro brasileiro da comunidade Python
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>
google*: marcoandre@gmail.com
twitter: @marrcandre
blog: marrcandre.blogspot.com
Marco Andr
e Lopes Mendes <marcoandre@gmail.com>