O documento apresenta 10 razões para aprender Python. A primeira razão é que Python é uma linguagem elegante e poderosa para criar programas concisos e sofisticados. A segunda razão é que Python vem com muitas bibliotecas úteis prontas para uso. A terceira razão é que Python é amplamente utilizado por grandes empresas como Google, YouTube e Industrial Light & Magic.
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Por que Python? - FISL 10 - 2009
1. Por que Python?
10 raz˜es para aprender Python
o
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e
24 de junho de 2009
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
2. Uma breve introdu¸˜o
ca
desse que vos fala
1 Mestre em Ciˆncia da Computa¸˜o pela UFSC
e ca
2 Professor desde 1995
1 Usu´rio Unix desde 1992 e Linux desde 1999
a
2 Entusiasta de software de c´digo aberto
o
1 Membro da comunidade Python desde 2004
2 Membro fundador da Associa¸˜o Python Brasil (APyB)
ca
3 Atual diretor de marketing da APyB
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
3. Uma breve introdu¸˜o
ca
Sobre a linguagem
1 Criada por Guido van Rossum em 1991
2 Origem do nome: grupo de humoristas Monty Python
3 Linguagem de alt´
ıssimo n´ (VHLL)
ıvel
4 Sintaxe simples e f´cil de ser assimilada
a
5 Linguagem orientada ` objetos com suporte aos paradigmas
a
estrutural e funcional
6 Tipagem forte e dinˆmica
a
7 Multiplataforma
8 Interpretada: compila para bytecode e interpreta
9 Ambiente interativo
10 Licen¸a de c´digo aberto, compat´ com a GPL
c o ıvel
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
Exemplos de programas (completos):
# Fibonacci # Fatorial
a =1 n = int ( raw_input ( " Fatorial de : " ))
b =1 fatorial = 1
while a < 800: print " % d ! = " %n ,
print a , i = n
a,b = b,a+b while i > 0:
fatorial = fatorial * i
print " % d " %i ,
if i != 1: print " . " ,
i -= 1
# 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
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
6. 1 - Python ´ legal
e
Clara 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 Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
7. 1 - Python ´ legal
e
Poderosa 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 " % -30 s - % -5 s " %( " Dominios " , " Ocorrencias " )
for dominio in dominios . keys ():
print " % -30 s - % -5 d " %( dominio , dominios [ dominio ])
registro = " % s ;% s n " %( 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 ( " 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 ()
a = set ( open ( " pacotesInstalados -20080827. txt " , " r " ). readlines ())
b = set ( open ( " pacotesInstalados -20080917. txt " , " r " ). readlines ())
diferenca = b - a
open ( " diferenca . txt " , " w " ). writelines ( diferenca )
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 ( " 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
l i s t a S i t e sO rd e na da = sorted ( dicSites . items () , key = itemgetter (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:
1 persistˆncia de objetos
e
2 banco de dados
3 gera¸˜o de pdfs
ca
4 gera¸˜o de gr´ficos
ca a
5 protocolos de redes
6 web
7 criptografia
8 muito mais...
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¸oes
c˜
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¸oes
c˜
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
a e
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¸oes
c˜
Youtube
”Python ´ r´pido o suficiente para o nosso site e permite que n´s
e a 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¸oes
c˜
Industrial Light and Magic
”Python desempenha um papel-chave no nosso esquema de
produ¸˜o. Sem ela um projeto do tamanho de ’Guerras nas
ca
Estrelas: Epis´dio II’ teria sido muito dif´ de sair. Da
o ıcil
renderiza¸˜o da multid˜o ao processamento em lote e a
ca a
composi¸˜o, Python mant´m todas as partes unidas.”Tommy
ca e
Burnette, Diretor T´cnico Sˆnior, ILM
e e
”Quando me transferi [...], todos os membros da equipe [...] me
acompanharam — menos Tommy. Ele [...] fora contratado pela
Industrial Light & Magic[...]. Tommy se tornou um destacado
programador de linguagem Python, por sorte dele a linguagem
escolhida pela empresa de Lucas. E sorte mesmo ´ quando o
e
preparo se une ` oportunidade. ”Randy Pausch, A Li¸˜o Final
a ca
http://www.python.org/about/quotes/
http://pythonologia.org/2008/09/24/a-licao-final/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
17. 3 - Python ´ utilizado l´ fora
e a
por grandes organiza¸oes
c˜
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
a e 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¸oes
c˜
Diversos outros exemplos:
1 Nokia
2 RedHat
3 Canonical
4 OpenOffice
5 Blender
6 Gimp
http://www.python.org/about/success/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
19. 3 - Python ´ utilizado l´ fora
e a
em muitas aplica¸oes
c˜
http://pt.wikipedia.org/wiki/Python
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
20. Raz˜o 4:
a
Python ´ utilizado aqui dentro
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
21. 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?
22. 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?
23. 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?
24. 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?
25. Raz˜o 5:
a
Python ´ utilizado na web ao redor do mundo
e
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:
1 Free Software Foundation
2 Bah´’´ International Community
aı
3 Nokia
4 CBS
5 OTAN
6 Oxfam America
7 Trolltech
8 AOL Music Canada
http://plone.net/sites/
http://code.djangoproject.com/wiki/DjangoPoweredSites
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
29. 5 - Python ´ utilizado na web
e
Django e o Google App Engine
”Django foi a melhor coisa que aconteceu para o Python nos
ultimos anos.”Luciano Ramalho, Presidente, Associa¸˜o Python Brasil
´ ca
http://code.google.com/intl/pt-BR/appengine/
http://www.djangoproject.com/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
30. Raz˜o 6:
a
Python ´ utilizado na web aqui no Brasil
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
31. 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?
32. 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?
33. 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?
34. 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 na Escola SEBRAE
CertiSign SERPRO
Universidade Metodista UNESCO Brasil
OAB/SP Varig
Politec
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?
35. Raz˜o 7:
a
Tem emprego para programadores Python
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
36. 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?
37. 7 - Tem emprego para programadores Python
sem sair daqui
Globo.com
http://www.nabble.com/-Oportunidade-Estagio--globo.com---RJ---Barra-td22506890.html
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
38. 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?
39. 7 - Tem emprego para programadores Python
sem sair daqui
Ao redor do Brasil - talvez da sua casa!
1 Async Open Source
2 LZT Inform´tica
a
3 IBM
4 Governo Brasileiro
5 Sebrae
6 SERPRO
7 Simples Consultoria
8 Weimar Consultoria
Bons programadores Python n˜o ficam sem emprego no Brasil
a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
40. Raz˜o 8:
a
Python conversa com outras linguagens
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
41. 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 (! 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 ){
P y _ S e tPr ogra mNa me ( argv [0]);
Py_Initialize ();
initspam ();
return 1; }
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
42. 8 - Python conversa com as outras linguagens
e 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 . s how Mes sage Dia log ( None , " Soma : % d " % soma )
http://www.linhadecodigo.com.br/Artigo.aspx?id=496
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
43. 8 - Python conversa com as outras linguagens
e 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 O n M s g B uttonClick ( self , * args ):
MessageBox . Show ( self . txtMessage . Text , " Message " )
Application . Run ( FormV3 ())
http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Samples
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
44. Raz˜o 9:
a
Python ´ multiplataforma
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
45. 9 - Python ´ multiplataforma
e
1 Linux
2 Unix
3 Windows
4 MacOS
At´ aqui, nada de surpreendente, certo?
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
46. 9 - Python ´ multiplataforma
e
Maemo
http://www.maemo.org
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
47. 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?
48. 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?
49. 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?
50. 9 - Python ´ multiplataforma
e
Android
O Android permite o uso de Python como linguagem de script
http://www.mobiledev.com.br/2009/01/03/rodando-python-no-android/
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
51. Raz˜o 10:
a
Python ´ multiparadigma
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
52. 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 " 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´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
53. 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 " % 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´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
54. 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 ,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)
http://www.pythonbrasil.com.br/moin.cgi/PythonFuncional
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
55. Bˆnus
o
Duas raz˜es adicionais
o
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
56. Bˆnus 1: 11 - Python ´ boa como primeira linguagem
o e
aprenda a programar com Python
1 Uso no IST desde 2004 com sucesso
2 V´rios iniciativas no Brasil e no mundo
a
3 MIT copiou nossa id´ia :)
e
4 Faz bem ` auto-estima do iniciante
a
5 Uso pode ser extrapolado para outras mat´rias
e
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?
57. Bˆnus 2: 12 - Existe uma comunidade forte
o
vocˆ tem com quem contar
e
1 Lista python-brasil: cerca de 500 mensagens por mˆs.
e
2 Associa¸˜o Python Brasil: amadurecimento da comunidade
ca
3 Conferˆncia Python Brasil: evento de alto n´ t´cnico
e ıvel e
4 FISL: nosso ”segundo”encontro anual
5 Diversos grupos de usu´rios ao redor do Brasil
a
http://pythonbrasil.com.br
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
58. Agradecimentos
1 Eduardo Dutka
2 Eduardo da Silva
3 Elvis Pf¨tzenreuter
u
4 ´
Erico Andrei
5 Humberto Di´genes
o
6 Mehran Misaghi
7 Osvaldo Santana Neto
8 Rodrigo Curvˆllo
e
9 Rodrigo Senra
10 Ramiro Luz
E muito obrigado a todos vocˆs pela presen¸a!
e c
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
59. Discuss˜o
a
Um de cada vez, por favor ;-)
Contato:
1 google*: marcoandre@gmail.com
2 blog: http://marrcandre.blogspot.com
3 slideshare: http://slideshare.com/marrcandre
4 twitter: @marrcandre
Muito obrigado!
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?