SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
Por que Python?
                          10 raz˜es para aprender Python
                                o


         Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
                   e



                                 23 de outubro de 2009




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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   Atualmente, membro da diretoria da APyB




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

    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?
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?
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?
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 ( " 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?
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?
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?
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¸oes
                    c˜




   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¸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?
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?
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?
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?
3 - Python ´ utilizado l´ fora
           e            a
por grandes organiza¸oes
                    c˜

   Weta Digital

   Criada por Peter Jackson. Respons´vel pelos efeitos visuais da
                                    a
   trilogia O Senhor dos An´is. Ganhou trˆs Oscar por King Kong.
                           e             e




   http://www.wetafx.co.nz/jobs/


  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Por que Python?
3 - Python ´ utilizado l´ fora
           e            a
em muitas aplica¸oes
                c˜




   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

   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
Django e o Google App Engine




   ”Django foi a melhor coisa que aconteceu para o Python nos
   ultimos anos.”Luciano Ramalho, 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?
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 na Escola                                       SEBRAE
      CertiSign                                             SERPRO
      Universidade Metodista                                UNESCO Brasil
      OAB/SP                                                Varig
      Politec                                               Universidade de Caxias do
                                                            Sul
   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



   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?
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!
      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?
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 (! 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?
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?
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?
Raz˜o 9:
    a
                             Python ´ multiplataforma
                                    e




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Por que Python?
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?
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?
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?
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 " 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?
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?
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?
Bˆnus
  o
                                Duas raz˜es adicionais
                                        o




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




      1   Experiˆncia de ensino desde 2004
                e
      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?
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   Python Brasil: 5 edi¸˜es de um evento de alto n´ t´cnico
                              co                         ıvel e
      4   FISL, Latinoware: trilhas de Python
      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?
Contato




     1   Estes slides:       http://slideshare.com/marrcandre

     2   google*:       marcoandre@gmail.com

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

     4   twitter:     @marrcandre



                                       Muito obrigado!




 Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
           e                                        Por que Python?

Contenu connexe

Tendances

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 TkCarlos Campani
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
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 PythonAlvaro Oliveira
 
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 PythonPriscila Mayumi
 
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çõesMarcos Thomaz
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
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 PythonFlávio Ribeiro
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamenteRodrigo Amaral
 
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?Rodnny Fakhye
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Pythonantonio sérgio nogueira
 

Tendances (19)

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
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
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
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, 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
 
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 brasil[6]
Python brasil[6]Python brasil[6]
Python brasil[6]
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à 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
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 
Ruby versus Python
Ruby versus PythonRuby versus Python
Ruby versus 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 a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Python
 

En vedette

Software Codigo Aberto Desktop
Software Codigo Aberto DesktopSoftware Codigo Aberto Desktop
Software Codigo Aberto DesktopMarco 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 2Marco Mendes
 
Porque Python - FISL 9.0
Porque Python - FISL 9.0Porque Python - FISL 9.0
Porque Python - FISL 9.0Marco Mendes
 
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/10Marco Mendes
 
Porque Python? FISL11
Porque Python? FISL11Porque Python? FISL11
Porque Python? FISL11Marco Mendes
 
Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Marco Mendes
 
Versões do Ubuntu
Versões do UbuntuVersões do Ubuntu
Versões do UbuntuMarco 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 2011Marco Mendes
 
Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]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 - 2010Marco Mendes
 
Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Marco Mendes
 
Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Marco 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 2011Marco Mendes
 
Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1Marco 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 2011Marco Mendes
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013Marco Mendes
 
Educação Continuada
Educação ContinuadaEducação Continuada
Educação ContinuadaMarco Mendes
 
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/2012Marco Mendes
 
Configurando o geany_para_python
Configurando o geany_para_pythonConfigurando o geany_para_python
Configurando o geany_para_pythonMarco Mendes
 
Educação continuada
Educação continuadaEducação continuada
Educação continuadaMarco Mendes
 

En vedette (20)

Software Codigo Aberto Desktop
Software Codigo Aberto DesktopSoftware Codigo Aberto Desktop
Software Codigo Aberto Desktop
 
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 - 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? FISL11
Porque Python? FISL11Porque Python? FISL11
Porque Python? FISL11
 
Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Por que Python? - FURB - 2009
Por que Python? - FURB - 2009
 
Versões do Ubuntu
Versões do UbuntuVersões do Ubuntu
Versões do Ubuntu
 
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
 
Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]
 
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
 
Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011
 
Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2
 
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
 
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
 
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
 
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
 

Similaire à Por que Python? - Latinoware 2009

Por que Python?
Por que Python?Por que Python?
Por que Python?gsroma
 
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)Álvaro Justen
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Motalucianacmota
 
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 pythonCleyton Fábio
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptMichaelArrais1
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
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êsHelio Colombe
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?Felipe Volpone
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonrodrigopex
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em PythonRober Guerra
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! dJoelmir Ribacki
 

Similaire à Por que Python? - Latinoware 2009 (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
 
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
 
Python
PythonPython
Python
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).ppt
 
Aula3PythonBasico.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação 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
 
Aula python
Aula pythonAula python
Aula python
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
AulaPython.pdf
AulaPython.pdfAulaPython.pdf
AulaPython.pdf
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
apresentacao.pdf
apresentacao.pdfapresentacao.pdf
apresentacao.pdf
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 
aula3_python.pptx
aula3_python.pptxaula3_python.pptx
aula3_python.pptx
 

Por que Python? - Latinoware 2009

  • 1. Por que Python? 10 raz˜es para aprender Python o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e 23 de outubro 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 Atualmente, membro da diretoria 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˜ 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˜ Weta Digital Criada por Peter Jackson. Respons´vel pelos efeitos visuais da a trilogia O Senhor dos An´is. Ganhou trˆs Oscar por King Kong. e e http://www.wetafx.co.nz/jobs/ 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://www.python.org/about/success/ 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 Django e o Google App Engine ”Django foi a melhor coisa que aconteceu para o Python nos ultimos anos.”Luciano Ramalho, 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?
  • 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 na Escola SEBRAE CertiSign SERPRO Universidade Metodista UNESCO Brasil OAB/SP Varig Politec Universidade de Caxias do Sul 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 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?
  • 37. 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?
  • 38. 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?
  • 39. Raz˜o 8: a Python conversa com outras linguagens Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 40. 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?
  • 41. 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?
  • 42. 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?
  • 43. Raz˜o 9: a Python ´ multiplataforma e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 44. 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?
  • 45. 9 - Python ´ multiplataforma e Maemo http://www.maemo.org Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 46. 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?
  • 47. 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?
  • 48. 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?
  • 49. 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?
  • 50. Raz˜o 10: a Python ´ multiparadigma e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 51. 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?
  • 52. 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?
  • 53. 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?
  • 54. Bˆnus o Duas raz˜es adicionais o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 55. Bˆnus 1: 11 - Python ´ boa como primeira linguagem o e aprenda a programar com Python 1 Experiˆncia de ensino desde 2004 e 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?
  • 56. 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 Python Brasil: 5 edi¸˜es de um evento de alto n´ t´cnico co ıvel e 4 FISL, Latinoware: trilhas de Python 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?
  • 57. Contato 1 Estes slides: http://slideshare.com/marrcandre 2 google*: marcoandre@gmail.com 3 blog: http://marrcandre.blogspot.com 4 twitter: @marrcandre Muito obrigado! Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?