SlideShare a Scribd company logo
1 of 58
Download to read offline
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?
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?
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?
Raz˜o 1:
    a
                                      Python ´ legal
                                             e




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
Raz˜o 2:
    a
                       Python j´ vem com os acess´rios
                               a                 o




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
Raz˜o 3:
    a
                             Python ´ utilizado l´ fora
                                    e            a




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
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?
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?
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?
Raz˜o 4:
    a
                         Python ´ utilizado aqui dentro
                                e




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
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?
Raz˜o 5:
    a
        Python ´ utilizado na web ao redor do mundo
               e




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
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?
Raz˜o 6:
    a
                 Python ´ utilizado na web aqui no Brasil
                        e




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
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?
Raz˜o 7:
    a
                Tem emprego para programadores Python




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
Raz˜o 8:
    a
                  Python conversa com outras linguagens




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
Raz˜o 9:
    a
                             Python ´ multiplataforma
                                    e




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
9 - Python ´ multiplataforma
           e
  Maemo




  http://www.maemo.org
 Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
           e                                       Por que Python?
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?
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?
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?
Raz˜o 10:
    a
                             Python ´ multiparadigma
                                    e




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?

More Related Content

What's hot

Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
gsroma
 

What's hot (16)

Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias Incluídas
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Dojo de Python
Dojo de PythonDojo de Python
Dojo de Python
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 

Viewers also liked

Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011
Marco Mendes
 
Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011
Marco Mendes
 
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Marco Mendes
 
Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2
Marco Mendes
 
Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2
Marco Mendes
 
Porque Python? FISL11
Porque Python? FISL11Porque Python? FISL11
Porque Python? FISL11
Marco Mendes
 
Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011
Marco Mendes
 
Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1
Marco Mendes
 
Por que Python? IFC Concórdia 2011
Por que Python? IFC Concórdia 2011Por que Python? IFC Concórdia 2011
Por que Python? IFC Concórdia 2011
Marco Mendes
 

Viewers also liked (20)

Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?
 
Express 4
Express 4Express 4
Express 4
 
Ruby on rails porque usar rails?!
Ruby on rails   porque usar rails?!Ruby on rails   porque usar rails?!
Ruby on rails porque usar rails?!
 
Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011
 
Versões do Ubuntu
Versões do UbuntuVersões do Ubuntu
Versões do Ubuntu
 
Porque Python - FISL 9.0
Porque Python - FISL 9.0Porque Python - FISL 9.0
Porque Python - FISL 9.0
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011
 
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
 
Software Codigo Aberto Desktop
Software Codigo Aberto DesktopSoftware Codigo Aberto Desktop
Software Codigo Aberto Desktop
 
Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2
 
Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2
 
Porque Python? FISL11
Porque Python? FISL11Porque Python? FISL11
Porque Python? FISL11
 
Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011
 
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
 
Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1
 
Por que Python? IFC Concórdia 2011
Por que Python? IFC Concórdia 2011Por que Python? IFC Concórdia 2011
Por que Python? IFC Concórdia 2011
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013
 
Educação Continuada
Educação ContinuadaEducação Continuada
Educação Continuada
 

Similar to Porque Python?

Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
Robson Ferreira
 

Similar to Porque Python? (20)

Por que Python?
Por que Python?Por que Python?
Por que Python?
 
Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação python
 
Aula3PythonBasico.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).ppt
 
Python-Fenalivre-Imed
Python-Fenalivre-ImedPython-Fenalivre-Imed
Python-Fenalivre-Imed
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Python
PythonPython
Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
AulaPython.pdf
AulaPython.pdfAulaPython.pdf
AulaPython.pdf
 
Aula python
Aula pythonAula python
Aula python
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
 

More from Marco Mendes (7)

Resumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaResumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha Crítica
 
Configurando o Geany para Python - 03/2012
Configurando o Geany para Python - 03/2012Configurando o Geany para Python - 03/2012
Configurando o Geany para Python - 03/2012
 
Configurando o geany_para_python
Configurando o geany_para_pythonConfigurando o geany_para_python
Configurando o geany_para_python
 
Educação continuada
Educação continuadaEducação continuada
Educação continuada
 
Python no Ensino Superior - PyconBrasil 2
Python no Ensino Superior - PyconBrasil 2Python no Ensino Superior - PyconBrasil 2
Python no Ensino Superior - PyconBrasil 2
 
Utilizando Python no Ensino Superior - PyConBrasil 3
Utilizando Python no Ensino Superior - PyConBrasil 3Utilizando Python no Ensino Superior - PyConBrasil 3
Utilizando Python no Ensino Superior - PyConBrasil 3
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da Informação
 

Recently uploaded

Recently uploaded (8)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Porque Python?

  • 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?