porque python?

58
Por que Python? 10 raz˜ oes para aprender Python Marco Andr´ e Lopes Mendes <[email protected]> 25 de outubro de 2007 Marco Andr´ e Lopes Mendes <[email protected]> Por que Python?

Upload: marco-mendes

Post on 19-May-2015

4.528 views

Category:

Technology


0 download

DESCRIPTION

Por que Python? 10 razões para estudar Python

TRANSCRIPT

Page 1: Porque Python?

Por que Python?

10 razoes para aprender Python

Marco Andre Lopes Mendes <[email protected]>

25 de outubro de 2007

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 2: Porque Python?

Uma breve introducaodesse que vos fala

1 Mestre em Ciencia da Computacao pela UFSC

2 Especialista em Redes pela UFSC

3 Graduado em Processamento de Dados pela UDESC

4 Tecnico em Processamento de Dados pela ETT

5 Professor desde 1995

6 Membro fundador do Grupo de Usuario Linux de Joinville(Guxlle)

7 Membro fundador da Associacao Python Brasil (APyB)

8 Diretor Academico da APyB

9 Entusiasta de Software Livre

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 3: Porque Python?

Uma breve introducaoSobre a linguagem

1 Criada por Guido van Rossum em 1991

2 Origem do nome: programa de TV Monty Python and the

Flying Circus

3 Sintaxe simples e facil de ser assimilada

4 Linguagem Orientada a objetos com suporte aos paradigmasestrutural e funcional

5 Tipagem Forte e Dinamica

6 Multiplataforma

7 Interpretada: compila para bytecode e interpreta

8 Ambiente Interativo

9 Licenca Open Source compatıvel com a GPL

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 4: Porque Python?

Razao 1:

Python e legal

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 5: Porque Python?

1 - Python e legalSimples e legıvel

# Fibonacci

a=1

b=1

while a < 800:

print a,

a,b = b,a+b

# Primos

ehprimo = True

numero = input("Informe o numero: ")

i = 2

while i < numero:

if numero % i == 0:

ehprimo = False

break

i += 1

if ehprimo:

print "Primo: ", numero

else:

print numero , ’possui fator ’, i

# Fatorial

n = int(raw_input("Fatorial de: "))

fatorial = 1

print "%d! = " %n,

i = n

while i > 0:

fatorial = fatorial * i

print "%d" %i,

if i != 1: print ".",

i -= 1

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 6: Porque Python?

1 - Python e legalClara e elegante

from math import sqrt

print "Primos: 2",

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 "\n\nForam encontrados %d numeros primos." %p

print "Foram necessarias %d comparacoes." %c

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 7: Porque Python?

1 - Python e legalPoderosa e sofisticada

arquivo = open("emails.txt")

dominios = {}

for contato in arquivo:

resto , dominio = contato.split("@")

dominio = dominio.replace("\r\n", "")

if dominio in dominios:

dominios[dominio] += 1

else:

dominios[dominio] = 1

arquivo.close ()

arquivo = open("dominios.txt", "w")

print "%-30s - %-5s" %("Dominios", "Ocorrencias")

for dominio in dominios.keys ():

print "%-30s - %-5d" %(dominio , dominios[dominio ])

registro = "%s;%s\n" %(dominio , dominios[dominio ])

arquivo.write(registro)

arquivo.close ()

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 8: Porque Python?

Razao 2:

Python ja vem com os acessorios

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 9: Porque Python?

2 - Python ja vem com os acessoriose eles fazem a diferenca

import urllib

pagina = urllib.urlopen("http ://br-linux.org")

for linha in pagina:

if "node -title" not in linha:

tmp = linha.split(’&gt;’ ,2)[2]

nome = tmp.split(’&lt; ’ ,1)[0]

print nome

pagina.close()

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 10: Porque Python?

2 - Python ja vem com os acessoriose eles fazem a diferenca

arquivo = open("squid.log","r")

lista = arquivo.readlines ()

arquivo.close ()

sites =[]

for linha in lista:

try:

if "DENIED" in linha:

inicio = linha.index("//")

fim = linha.index("/",inicio +2)

site = linha[inicio +2:fim]

sites.append(site)

except:

pass

dicSites = {}

for site in sites:

dicSites[site] = dicSites.get(site ,0) + 1

listaSitesOrdenada = sorted(dicSites.items(), key=itemgetter (1))

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 11: Porque Python?

2 - Python ja vem com os acessoriose eles fazem a diferenca

Bibliotecas:

1 persistencia de objetos

2 banco de dados

3 geracao de pdfs

4 geracao de graficos

5 protocolos de redes

6 web

7 criptografia

8 muito mais...

http://www.pythonbrasil.com.br/moin.cgi/CookBook

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 12: Porque Python?

Razao 3:

Python e utilizado la fora

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 13: Porque Python?

3 - Python e utilizado la forapor grandes organizacoes

Google

http://web.archive.org/web/19990204033714/google.stanford.edu/about.html

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 14: Porque Python?

3 - Python e utilizado la forapor grandes organizacoes

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 estamosprocurando por mais pessoas com conhecimento nessalinguagem.”Peter Norvig, diretor de qualidade de busca do Google Inc.

http://www.pythonbrasil.com.br/moin.cgi/PythonNoGoogle

”[...] nossa filosofia geral e ’Python onde podemos, C++ ondesomos obrigados.’ Python nao e definitivamente apenas umpequeno pedaco, nem e usado apenas para tarefas ’de scripting’; seficassemos sem todo nosso codigo Python de uma hora para outra,nossa poderosa infra-estrutura que tem sido descrita como ’a armasecreta do Google’ ficaria abalada.”Alex Martelli, Lıder Tecnico,

Sistemas de Producao, Google Inc.

http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 15: Porque Python?

3 - Python e utilizado la forapor grandes organizacoes

Youtube

”Python e rapido o suficiente para o nosso site e permite que nosproduzamos caracterısticas que pode ser mantidas em temporecorde, 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) eessencialmente todo Python [...].”Alex Martelli, Lıder Tecnico, Sistemas

de Producao, Google Inc.

http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 16: Porque Python?

3 - Python e utilizado la forapor grandes organizacoes

Industrial Light and Magic

”Python desempenha um papel-chave no nosso esquema deproducao. Sem ela um projeto do tamanho de ’Guerras de Estrela:Episodio II’ teria sido muito difıcil de sair. Da renderizacao damultidao ao processamento em lote e a composicao, Pythonmantem todas as partes unidas.”Tommy Burnette, Diretor Tecnico

Senior, ILM

http://www.python.org/about/quotes/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 17: Porque Python?

3 - Python e utilizado la forapor grandes organizacoes

DreamWorks

”Gostarıamos de ser tudo Python, mas hoje ainda temos muito dePerl.”Ed Leonard, Diretor de Tecnologia de Animacao, DreamWorks

”A nossa equipe tem baseado a transicao de Perl para Python nafacilidade. Ha tres razoes primarias para isso. A criacao debindings em Python para uma biblioteca C++ e muito facil [...]. Anatureza orientada a objeto de Python e muito atraente [...]. EPython e uma cidada de primeira classe [...] na nossa industria. ”Darin Grant, Chefe de Producao de Tecnologia, DreamWorks

http://marrcandre.blogspot.com/2007/06/linux-alimentando-o-ogro.html

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 18: Porque Python?

3 - Python e utilizado la forapor grandes organizacoes

Diversos outros exemplos:

1 Nokia

2 RedHat

3 Canonical

4 OpenOffice

5 Blender

6 Gimp

http://www.python.org/about/success/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 19: Porque Python?

Razao 4:

Python e utilizado aqui dentro

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 20: Porque Python?

4 - Python e utilizado aqui dentrocom sucesso

Async - Stoq: aplicativos livres para gestao comercial

http://www.async.com.br

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 21: Porque Python?

4 - Python e utilizado aqui dentrocom sucesso

LZT - AutoSystem: automacao de postos de combustıvel

http://www.lzt.com.br/autosystem.php

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 22: Porque Python?

4 - Python e utilizado aqui dentrocom sucesso

INdT - Instituto Nokia de Tecnologia

http://www.indt.org.br

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 23: Porque Python?

4 - Python e utilizado aqui dentrocom sucesso

InVesalius - Reconstrucao 3D de imagens medicas

http://www.cenpra.gov.br/promed/software.htm

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 24: Porque Python?

Razao 5:

Python e utilizado na web ao redor do mundo

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 25: Porque Python?

5 - Python e utilizado na webao redor do mundo

AOL Music Canada

http://music.aol.ca/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 26: Porque Python?

5 - Python e utilizado na webao redor do mundo

Novell

http://www.novell.com/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 27: Porque Python?

5 - Python e utilizado na webao redor do mundo

CIA

https://www.cia.gov/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 28: Porque Python?

5 - Python e utilizado na webao redor do mundo

Outros sites:

1 Free Software Foundation

2 Baha’ı International Community

3 Nokia

4 Octagon

5 Oxfam America

6 Trolltech

http://plone.net/sites/

http://code.djangoproject.com/wiki/DjangoPoweredSites

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 29: Porque Python?

Razao 6:

Python e utilizado na web aqui no Brasil

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 30: Porque Python?

6 - Python e utilizado na webaqui no Brasil

IDG Brasil

http://www.idg.com.br/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 31: Porque Python?

6 - Python e utilizado na webaqui no Brasil

Vericia - Busca de Imoveis

http://www.vericia.com

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 32: Porque Python?

6 - Python e utilizado na webaqui no Brasil

Republica Federativa do Brasil

http://www.brasil.gov.br

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 33: Porque Python?

6 - Python e utilizado na webaqui no Brasil

Muitos outros exemplos:

Camara dos deputados

Carta Capital

CertiSign

Linux Magazine

OAB/SP

Politec

Presidencia da Republica

SEBRAE

SERPRO

UNESCO Brasil

Varig

Veja Laroussehttp://webinsider.uol.com.br/index.php/2006/08/28/python-e-opcao-para-desenvolvimento-web/

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 34: Porque Python?

Razao 7:

Tem emprego para programadores Python

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 35: Porque Python?

7 - Tem emprego para programadores Pythonsem sair daqui

Google Brasil - Belo Horizonte

http://www.google.com.br/support/jobs/bin/answer.py?answer=40943

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 36: Porque Python?

7 - Tem emprego para programadores Pythonsem sair daqui

INdT - Recife

http://www.nabble.com/Oportunidade-Imperd%C3%ADvel-de-Emprego-no-Recife-p10955269.html

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 37: Porque Python?

7 - Tem emprego para programadores Pythonsem sair daqui

Ao redor do Brasil - talvez da sua casa!

1 Async Open Source

2 LZT Informatica

3 Governo Brasileiro

4 Sebrae

5 Serpro

6 Simples Consultoria

7 Weimar Consultoria

Bons programadores Python nao ficam sem emprego no Brasil

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 38: Porque Python?

Razao 8:

Python conversa com outras linguagens

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 39: Porque Python?

8 - Python conversa com as outras linguagense 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 (! PyArg_ParseTuple(args , "s", &orden))

return NULL;

sts = system(orden );

return Py_BuildValue("i", sts); }

static PyMethodDef SpamMethods [] = {

{"system", spam_system , METH_VARARGS},

{NULL , NULL} };

void

initspam (){( void) Py_InitModule("spam", SpamMethods );}

int main(int argc , char **argv){

Py_SetProgramName(argv [0]);

Py_Initialize ();

initspam ();

return 1; }

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 40: Porque Python?

8 - Python conversa com as outras linguagense convive bem com elas

Java: Jython

import javax.swing as libswing

pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")

snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")

soma = int(pnumero) + int(snumero)

libswing.JOptionPane.showMessageDialog(None , "Soma: %d " % soma)

http://www.linhadecodigo.com.br/Artigo.aspx?id=496

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 41: Porque Python?

8 - Python conversa com as outras linguagense convive bem com elas

.Net: IronPython

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 OnMsgButtonClick(self , *args):

MessageBox.Show(self.txtMessage.Text ,"Message")

Application.Run(FormV3 ())

http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Samples

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 42: Porque Python?

Razao 9:

Python e multiplataforma

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 43: Porque Python?

9 - Python e multiplataforma

1 Linux

2 Unix

3 Windows

4 MacOS

Ate aqui, nada de surpreendente, certo?

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 44: Porque Python?

9 - Python e multiplataforma

Maemo

http://www.maemo.org

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 45: Porque Python?

9 - Python e multiplataforma

XO/OLPCGrande parte do projeto e desenvolvida em Python, incluindo:

1 A interface grafica Sugar2 Varias aplicacoes e jogos3 O sistema de arquivos

http://wiki.laptop.org/go/Python

http://www.freesoftwaremagazine.com/blogs/olpc_kicks_off_pycon_2007

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 46: Porque Python?

9 - Python e multiplataforma

PyS60 - Celulares Nokia Serie 60

http://wiki.opensource.nokia.com/projects/PyS60

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 47: Porque Python?

9 - Python e multiplataforma

iPhone

O Django foi uma das primeiras aplicacoes complexas portadas

http://devlog.waltercruz.com/django_rodando_no_iphone

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 48: Porque Python?

Razao 10:

Python e multiparadigma

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 49: Porque Python?

10 - Python e multiparadigma

Programacao 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 Andre Lopes Mendes <[email protected]> Por que Python?

Page 50: Porque Python?

10 - Python e multiparadigma

Programacao 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__

python -i poo -fracoes.py

>>> a = Fracao (5,7)

>>> b = Fracao (3,4)

>> r1 = a * b

>>> print r1

15/28

>>> c = Fracao (3,5)

>> r2 = a * c

>>> print r2

3/7

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 51: Porque Python?

10 - Python e multiparadigma

Programacao 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)))

# Fibonacci : 10 primeiros 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 Mandelbrot

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 Andre Lopes Mendes <[email protected]> Por que Python?

Page 52: Porque Python?

Bonus 1: 11 - Python e boa como primeira linguagemaprenda a programar com Python

1 Uso no IST desde 2004 com sucesso

2 Varios iniciativas no Brasil e no mundo

3 MIT copiou nossa ideia :)

4 Faz bem a auto-estima do iniciante

5 Uso pode ser extrapolado para outras materias

http://www.amk.ca/diary/2006/11/mit_to_try_python_for_introduc.html

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 53: Porque Python?

Bonus 2: 12 - Existe uma comunidade fortevoce tem com quem contar

1 Lista python-brasil: cerca 500 mensagens por mes.

2 Associacao Python Brasil: amadurecimento da comunidade

3 PyConBrasil: evento de alto nıvel tecnico

4 FISL: outra oportunidade de um encontro anual

5 Diversos grupos de usuarios ao redor do Brasil

http://pythonbrasil.com.br

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 54: Porque Python?

Agradecimentos

1 Eduardo Dutka

2 Eduardo da Silva

3 Elvis Pfutzenreuter

4 Erico Andrei

5 Mehran Misaghi

6 Osvaldo Santana Neto

7 Rodrigo Curvello

8 Rodrigo Senra

9 Ramiro Luz

E muito obrigado a todos voces pela presenca!

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 55: Porque Python?

Discussao

Um de cada vez, por favor ;-)

Contato:

1 google*: [email protected]

2 blog: http://marrcandre.blogspot.com

3 slideshare: http://slideshare.com/marrcandre

Muito obrigado!

Marco Andre Lopes Mendes <[email protected]> Por que Python?

Page 56: Porque Python?

Referencias

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 Andre Lopes Mendes <[email protected]> Por que Python?

Page 57: Porque Python?

Referencias

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 Andre Lopes Mendes <[email protected]> Por que Python?

Page 58: Porque Python?

Referencias

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 Andre Lopes Mendes <[email protected]> Por que Python?