1. Por que Python?
10 raz˜es para aprender Python
o
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e
25 de outubro de 2007
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
2. Uma breve introdu¸˜o
ca
desse que vos fala
Mestre em Ciˆncia da Computa¸˜o pela UFSC
e ca
1
Especialista em Redes pela UFSC
2
Graduado em Processamento de Dados pela UDESC
3
T´cnico em Processamento de Dados pela ETT
e
4
Professor desde 1995
5
Membro fundador do Grupo de Usu´rio Linux de Joinville
a
6
(Guxlle)
Membro fundador da Associa¸˜o Python Brasil (APyB)
ca
7
Diretor Acadˆmico da APyB
e
8
Entusiasta de Software Livre
9
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
3. Uma breve introdu¸˜o
ca
Sobre a linguagem
Criada por Guido van Rossum em 1991
1
Origem do nome: programa de TV Monty Python and the
2
Flying Circus
Sintaxe simples e f´cil de ser assimilada
a
3
Linguagem Orientada ` objetos com suporte aos paradigmas
a
4
estrutural e funcional
Tipagem Forte e Dinˆmica
a
5
Multiplataforma
6
Interpretada: compila para bytecode e interpreta
7
Ambiente Interativo
8
Licen¸a Open Source compat´ com a GPL
c ıvel
9
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
4. Raz˜o 1:
a
Python ´ legal
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
5. 1 - Python ´ legal
e
Simples e leg´
ıvel
# Fibonacci # Fatorial
a =1 n = int ( raw_input ( quot; Fatorial de : quot; ))
b =1 fatorial = 1
while a < 800: print quot; % d ! = quot; %n ,
print a , i=n
a,b = b,a+b while i > 0:
fatorial = fatorial * i
print quot; % d quot; %i ,
if i != 1: print quot; . quot; ,
i -= 1
# Primos
ehprimo = True
numero = input ( quot; Informe o numero : quot; )
i=2
while i < numero :
if numero % i == 0:
ehprimo = False
break
i += 1
if ehprimo :
print quot; Primo : quot; , numero
else :
print numero , ’ possui fator ’ , i
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
6. 1 - Python ´ legal
e
Clara e elegante
from math import sqrt
print quot; Primos : 2 quot; ,
c , p , primos , limite = 1 , 1 , [2 ,] , 1000
for numero in xrange (3 , limite +1 ,2):
ehprimo = 1
for i in primos :
c += 1
if numero % i == 0:
ehprimo = 0
break
if i > sqrt ( numero ):
break
if ehprimo :
primos . append ( numero )
print numero ,
p += 1
print quot; n nForam encontrados % d numeros primos . quot; % p
print quot; Foram necessarias % d comparacoes . quot; % c
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
7. 1 - Python ´ legal
e
Poderosa e sofisticada
arquivo = open ( quot; emails . txt quot; )
dominios = {}
for contato in arquivo :
resto , dominio = contato . split ( quot; @ quot; )
dominio = dominio . replace ( quot; r n quot; , quot; quot; )
if dominio in dominios :
dominios [ dominio ] += 1
else :
dominios [ dominio ] = 1
arquivo . close ()
arquivo = open ( quot; dominios . txt quot; , quot; w quot; )
print quot; % -30 s - % -5 s quot; %( quot; Dominios quot; , quot; Ocorrencias quot; )
for dominio in dominios . keys ():
print quot; % -30 s - % -5 d quot; %( dominio , dominios [ dominio ])
registro = quot; % s ;% s n quot; %( dominio , dominios [ dominio ])
arquivo . write ( registro )
arquivo . close ()
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
8. Raz˜o 2:
a
Python j´ vem com os acess´rios
a o
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
9. 2 - Python j´ vem com os acess´rios
a o
e eles fazem a diferen¸a
c
import urllib
pagina = urllib . urlopen ( quot; http :// br - linux . org quot; )
for linha in pagina :
if quot; node - title quot; not in linha :
tmp = linha . split ( ’& gt ; ’ ,2)[2]
nome = tmp . split ( ’& lt ; ’ ,1)[0]
print nome
pagina . close ()
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
10. 2 - Python j´ vem com os acess´rios
a o
e eles fazem a diferen¸a
c
arquivo = open ( quot; squid . log quot; ,quot; r quot; )
lista = arquivo . readlines ()
arquivo . close ()
sites =[]
for linha in lista :
try :
if quot; DENIED quot; in linha :
inicio = linha . index ( quot; // quot; )
fim = linha . index ( quot; / quot; , inicio +2)
site = linha [ inicio +2: fim ]
sites . append ( site )
except :
pass
dicSites = {}
for site in sites :
dicSites [ site ] = dicSites . get ( site ,0) + 1
l i s t a S i t e s O r d e n a d a = sorted ( dicSites . items () , key = item getter (1))
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
11. 2 - Python j´ vem com os acess´rios
a o
e eles fazem a diferen¸a
c
Bibliotecas:
persistˆncia de objetos
e
1
banco de dados
2
gera¸˜o de pdfs
ca
3
gera¸˜o de gr´ficos
ca a
4
protocolos de redes
5
web
6
criptografia
7
muito mais...
8
http://www.pythonbrasil.com.br/moin.cgi/CookBook
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
12. Raz˜o 3:
a
Python ´ utilizado l´ fora
e a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
13. 3 - Python ´ utilizado l´ fora
e a
por grandes organiza¸˜es
co
Google
http://web.archive.org/web/19990204033714/google.stanford.edu/about.html
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
14. 3 - Python ´ utilizado l´ fora
e a
por grandes organiza¸˜es
co
Google
”Python tem sido uma parte importante do Google desde o in´ ıcio,
e permanece assim conforme o sistema cresce e evolui. Hoje,
dezenas de engenheiros do Google usam Python, e estamos
procurando por mais pessoas com conhecimento nessa
linguagem.”Peter Norvig, diretor de qualidade de busca do Google Inc.
http://www.pythonbrasil.com.br/moin.cgi/PythonNoGoogle
”[...] nossa filosofia geral ´ ’Python onde podemos, C++ onde
e
somos obrigados.’ Python n˜o ´ definitivamente apenas um
ae
pequeno peda¸o, nem ´ usado apenas para tarefas ’de scripting’; se
c e
fic´ssemos sem todo nosso c´digo Python de uma hora para outra,
a o
nossa poderosa infra-estrutura que tem sido descrita como ’a arma
secreta do Google’ ficaria abalada.”Alex Martelli, L´ T´cnico,
ıder e
Sistemas de Produ¸˜o, Google Inc.
ca
http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
15. 3 - Python ´ utilizado l´ fora
e a
por grandes organiza¸˜es
co
Youtube
”Python ´ r´pido o suficiente para o nosso site e permite que n´s
ea o
produzamos caracter´ısticas que pode ser mantidas em tempo
recorde, com um m´ınimo de desenvolvedores.”Cuong Do, Arquiteto de
Software, YouTube.com
http://www.python.org/about/quotes/
”O YouTube (uma das propriedades mais valiosas do Google) ´ e
essencialmente todo Python [...].”Alex Martelli, L´ T´cnico, Sistemas
ıder e
de Produ¸˜o, Google Inc.
ca
http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
16. 3 - Python ´ utilizado l´ fora
e a
por grandes organiza¸˜es
co
Industrial Light and Magic
”Python desempenha um papel-chave no nosso esquema de
produ¸˜o. Sem ela um projeto do tamanho de ’Guerras de Estrela:
ca
Epis´dio II’ teria sido muito dif´ de sair. Da renderiza¸˜o da
o ıcil ca
multid˜o ao processamento em lote e a composi¸˜o, Python
a ca
mant´m todas as partes unidas.”Tommy Burnette, Diretor T´cnico
e e
Sˆnior, ILM
e
http://www.python.org/about/quotes/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
17. 3 - Python ´ utilizado l´ fora
e a
por grandes organiza¸˜es
co
DreamWorks
”Gostar´ıamos de ser tudo Python, mas hoje ainda temos muito de
Perl.”Ed Leonard, Diretor de Tecnologia de Anima¸˜o, DreamWorks
ca
”A nossa equipe tem baseado a transi¸˜o de Perl para Python na
ca
facilidade. H´ trˆs raz˜es prim´rias para isso. A cria¸˜o de
ae o a ca
bindings em Python para uma biblioteca C++ ´ muito f´cil [...]. A
e a
natureza orientada a objeto de Python ´ muito atraente [...]. E
e
Python ´ uma cidad˜ de primeira classe [...] na nossa ind´stria. ”
e a u
Darin Grant, Chefe de Produ¸˜o de Tecnologia, DreamWorks
ca
http://marrcandre.blogspot.com/2007/06/linux-alimentando-o-ogro.html
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
18. 3 - Python ´ utilizado l´ fora
e a
por grandes organiza¸˜es
co
Diversos outros exemplos:
Nokia
1
RedHat
2
Canonical
3
OpenOffice
4
Blender
5
Gimp
6
http://www.python.org/about/success/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
19. Raz˜o 4:
a
Python ´ utilizado aqui dentro
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
20. 4 - Python ´ utilizado aqui dentro
e
com sucesso
Async - Stoq: aplicativos livres para gest˜o comercial
a
http://www.async.com.br
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
21. 4 - Python ´ utilizado aqui dentro
e
com sucesso
LZT - AutoSystem: automa¸˜o de postos de combust´
ca ıvel
http://www.lzt.com.br/autosystem.php
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
22. 4 - Python ´ utilizado aqui dentro
e
com sucesso
INdT - Instituto Nokia de Tecnologia
http://www.indt.org.br
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
23. 4 - Python ´ utilizado aqui dentro
e
com sucesso
InVesalius - Reconstru¸˜o 3D de imagens m´dicas
ca e
http://www.cenpra.gov.br/promed/software.htm
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
24. Raz˜o 5:
a
Python ´ utilizado na web ao redor do mundo
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
25. 5 - Python ´ utilizado na web
e
ao redor do mundo
AOL Music Canada
http://music.aol.ca/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
26. 5 - Python ´ utilizado na web
e
ao redor do mundo
Novell
http://www.novell.com/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
27. 5 - Python ´ utilizado na web
e
ao redor do mundo
CIA
https://www.cia.gov/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
28. 5 - Python ´ utilizado na web
e
ao redor do mundo
Outros sites:
Free Software Foundation
1
Bah´’´ International Community
aı
2
Nokia
3
Octagon
4
Oxfam America
5
Trolltech
6
http://plone.net/sites/
http://code.djangoproject.com/wiki/DjangoPoweredSites
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
29. Raz˜o 6:
a
Python ´ utilizado na web aqui no Brasil
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
30. 6 - Python ´ utilizado na web
e
aqui no Brasil
IDG Brasil
http://www.idg.com.br/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
31. 6 - Python ´ utilizado na web
e
aqui no Brasil
Vericia - Busca de Im´veis
o
http://www.vericia.com
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
32. 6 - Python ´ utilizado na web
e
aqui no Brasil
Rep´blica Federativa do Brasil
u
http://www.brasil.gov.br
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
33. 6 - Python ´ utilizado na web
e
aqui no Brasil
Muitos outros exemplos:
Cˆmara dos deputados
a Presidˆncia da Rep´blica
e u
Carta Capital SEBRAE
CertiSign SERPRO
Linux Magazine UNESCO Brasil
OAB/SP Varig
Politec Veja Larousse
http://webinsider.uol.com.br/index.php/2006/08/28/python-e-opcao-para-desenvolvimento-web/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
34. Raz˜o 7:
a
Tem emprego para programadores Python
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
35. 7 - Tem emprego para programadores Python
sem sair daqui
Google Brasil - Belo Horizonte
http://www.google.com.br/support/jobs/bin/answer.py?answer=40943
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
36. 7 - Tem emprego para programadores Python
sem sair daqui
INdT - Recife
http://www.nabble.com/Oportunidade-Imperd%C3%ADvel-de-Emprego-no-Recife-p10955269.html
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
37. 7 - Tem emprego para programadores Python
sem sair daqui
Ao redor do Brasil - talvez da sua casa!
Async Open Source
1
LZT Inform´tica
a
2
Governo Brasileiro
3
Sebrae
4
Serpro
5
Simples Consultoria
6
Weimar Consultoria
7
Bons programadores Python n˜o ficam sem emprego no Brasil
a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
38. Raz˜o 8:
a
Python conversa com outras linguagens
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
39. 8 - Python conversa com as outras linguagens
e convive bem com elas
C e C++
void initspam ( void );
static PyObject * spam_system ( PyObject * self , PyObject * args );
static PyObject * spam_system ( self , args )
PyObject * self ;
PyObject * args ; {
char * orden ; int sts ;
if (! P y A r g _ P a r s e T u p l e ( args , quot; s quot; , & orden ))
return NULL ;
sts = system ( orden );
return Py_BuildValue ( quot; i quot; , sts ); }
static PyMethodDef SpamMethods [] = {
{ quot; system quot; , spam_system , METH_VARARGS } ,
{ NULL , NULL } };
void
initspam (){( void ) Py_InitModule ( quot; spam quot; , SpamMethods );}
int main ( int argc , char ** argv ){
P y _ S e t P r o g r a m N a m e ( argv [0]);
Py_Initialize ();
initspam ();
return 1; }
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
40. 8 - Python conversa com as outras linguagens
e convive bem com elas
Java: Jython
import javax . swing as libswing
pnumero = libswing . JOptionPane . sh o wI np ut D ia lo g ( quot; Digite um Numero Inteiro : quot; )
snumero = libswing . JOptionPane . sh o wI np ut D ia lo g ( quot; Digite um Numero Inteiro : quot; )
soma = int ( pnumero ) + int ( snumero )
libswing . JOptionPane . s h o w M e s s a g e D i a l o g ( None , quot; Soma : % d quot; % soma )
http://www.linhadecodigo.com.br/Artigo.aspx?id=496
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
41. 8 - Python conversa com as outras linguagens
e convive bem com elas
.Net: IronPython
import clr
clr . AddReference ( quot; System . Windows . Forms quot; )
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 . O n M s g B u t t o n C l i c k
self . Controls . Add ( msgButton )
def O n M s g B u t t o n C l i c k ( self , * args ):
MessageBox . Show ( self . txtMessage . Text , quot; Message quot; )
Application . Run ( FormV3 ())
http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Samples
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
42. Raz˜o 9:
a
Python ´ multiplataforma
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
43. 9 - Python ´ multiplataforma
e
Linux
1
Unix
2
Windows
3
MacOS
4
At´ aqui, nada de surpreendente, certo?
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
44. 9 - Python ´ multiplataforma
e
Maemo
http://www.maemo.org
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
45. 9 - Python ´ multiplataforma
e
XO/OLPC
Grande parte do projeto ´ desenvolvida em Python, incluindo:
e
1 A interface gr´fica Sugar
a
2 V´rias aplica¸˜es e jogos
a co
3 O sistema de arquivos
http://wiki.laptop.org/go/Python
http://www.freesoftwaremagazine.com/blogs/olpc_kicks_off_pycon_2007
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
46. 9 - Python ´ multiplataforma
e
PyS60 - Celulares Nokia S´rie 60
e
http://wiki.opensource.nokia.com/projects/PyS60
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
47. 9 - Python ´ multiplataforma
e
iPhone
O Django foi uma das primeiras aplica¸˜es complexas portadas
co
http://devlog.waltercruz.com/django_rodando_no_iphone
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
48. Raz˜o 10:
a
Python ´ multiparadigma
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
49. 10 - Python ´ multiparadigma
e
Programa¸˜o Estruturada
ca
import random
def jogaDados ():
dado1 = random . randrange (1 ,7)
dado2 = random . randrange (1 ,7)
somaTemp = dado1 + dado2
print quot; Jogador tirou % d + % d = % d quot; %( dado1 , dado2 , somaTemp )
return somaTemp
soma = jogaDados ()
if soma == 7 or soma == 11:
situacaoJogo = quot; GANHOU quot;
elif soma == 2 or soma == 3 or soma == 12:
situacaoJogo = quot; PERDEU quot;
else :
situacaoJogo = quot; CONTINUA quot;
meuPonto = soma
print quot; Ponto : quot; , meuPonto
while situacaoJogo == quot; CONTINUA quot; :
soma = jogaDados ()
if soma == meuPonto : situacaoJogo = quot; GANHOU quot;
elif soma == 7: situacaoJogo = quot; PERDEU quot;
if situacaoJogo == quot; GANHOU quot; : print quot; Jogador ganha quot;
else : print quot; Jogador perde quot;
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
50. 10 - Python ´ multiparadigma
e
Programa¸˜o Orientada a Objetos
ca
class Fracao ( object ): python -i poo - fracoes . py
def __mdc ( self , m , n ): >>> a = Fracao (5 ,7)
if m % n == 0: >>> b = Fracao (3 ,4)
return n >> r1 = a * b
else : >>> print r1
return self . __mdc (n , m % n ) 15/28
>>> c = Fracao (3 ,5)
def __init__ ( self , numerador , denominador =1): >> r2 = a * c
g = self . __mdc ( numerador , denominador ) >>> print r2
self . numerador = numerador / g 3/7
self . denominador = denominador / g
def __repr__ ( self ):
return quot; % d /% d quot; %( 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´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
51. 10 - Python ´ multiparadigma
e
Programa¸˜o Funcional
ca
# 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 ,10 00)))
# 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))
# Conjunto 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)
http://www.pythonbrasil.com.br/moin.cgi/PythonFuncional
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
52. Bˆnus 1: 11 - Python ´ boa como primeira linguagem
o e
aprenda a programar com Python
Uso no IST desde 2004 com sucesso
1
V´rios iniciativas no Brasil e no mundo
a
2
MIT copiou nossa id´ia :)
e
3
Faz bem ` auto-estima do iniciante
a
4
Uso pode ser extrapolado para outras mat´rias
e
5
http://www.amk.ca/diary/2006/11/mit_to_try_python_for_introduc.html
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
53. Bˆnus 2: 12 - Existe uma comunidade forte
o
vocˆ tem com quem contar
e
Lista python-brasil: cerca 500 mensagens por mˆs.
e
1
Associa¸˜o Python Brasil: amadurecimento da comunidade
ca
2
PyConBrasil: evento de alto n´ t´cnico
ıvel e
3
FISL: outra oportunidade de um encontro anual
4
Diversos grupos de usu´rios ao redor do Brasil
a
5
http://pythonbrasil.com.br
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
54. Agradecimentos
Eduardo Dutka
1
Eduardo da Silva
2
Elvis Pf¨tzenreuter
u
3
´
Erico Andrei
4
Mehran Misaghi
5
Osvaldo Santana Neto
6
Rodrigo Curvˆllo
e
7
Rodrigo Senra
8
Ramiro Luz
9
E muito obrigado a todos vocˆs pela presen¸a!
e c
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
55. Discuss˜o
a
Um de cada vez, por favor ;-)
Contato:
google*:
1 marcoandre@gmail.com
blog:
2 http://marrcandre.blogspot.com
slideshare:
3 http://slideshare.com/marrcandre
Muito obrigado!
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
56. Referˆncias
e
http://pythonBrasil.com.br
http://python.org
http://www.pyConBrasil.com.br
http://associacao.pythonBrasil.com.br
http://www.pythonBrasil.com.br/moin.cgi/CookBook
http://web.archive.org/web/19990204033714/google.stanford.edu/about.html
http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/
http://www.python.org/about/quotes/
http://www.pythonbrasil.com.br/moin.cgi/PythonNoGoogle
http://www.sounerd.com.br/index.php?option=com_content&task=view&id=191&Itemid=43
http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm
http://marrcandre.blogspot.com/2007/06/linux-alimentando-o-ogro.html
http://www.python.org/about/success/
http://www.async.com.br
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
57. Referˆncias
e
http://www.lzt.com.br/autosystem.php
http://www.indt.org.br
http://music.aol.ca/
http://www.novell.com/
https://www.cia.gov/
http://plone.net/sites/
http://code.djangoproject.com/wiki/DjangoPoweredSites
http://www.idg.com.br/
http://www.vericia.com
http://www.brasil.gov.br
http:
//webinsider.uol.com.br/index.php/2006/08/28/python-e-opcao-para-desenvolvimento-web/
http://www.google.com.br/support/jobs/bin/answer.py?answer=40943
http://www.nabble.com/Oportunidade-Imperd%C3%ADvel-de-Emprego-no-Recife-p10955269.html
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
58. Referˆncias
e
http://www.maemo.org
http://wiki.laptop.org/go/Python
http://www.freesoftwaremagazine.com/blogs/olpc_kicks_off_pycon_2007
http://wiki.opensource.nokia.com/projects/PyS60
http://www.epx.com.br/artigos/pys60.php
http://devlog.waltercruz.com/django_rodando_no_iphone
http://www.pythonbrasil.com.br/moin.cgi/PythonFuncional
http://www.cenpra.gov.br/promed/software.htm
http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Samples
http://www.pythonbrasil.com.br/moin.cgi/PythonComC
http://www.pythonbrasil.com.br/moin.cgi/ExtendendoCPython
http://www.amk.ca/diary/2006/11/mit_to_try_python_for_introduc.html
fatorw.com/2007/04/14/arte-do-comeco/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?