SlideShare uma empresa Scribd logo
Por que Python?
                          10 raz˜es para aprender Python
                                o


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



                                21 de setembro 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˜


   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¸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
por grandes organiza¸oes
                    c˜




   Diversos outros exemplos:

      1   Nokia
      2   RedHat
      3   Canonical
      4   OpenOffice
      5   Blender
      6   Gimp

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




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




   http://pt.wikipedia.org/wiki/Python




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



   Outros sites:
      1   Free Software Foundation
      2   Bah´’´ International Community
             aı
      3   Nokia
      4   CBS
      5   OTAN
      6   Oxfam America
      7   Trolltech
      8   AOL Music Canada
   http://plone.net/sites/

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




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                        Por que Python?
5 - Python ´ utilizado na web
           e
Django e o Google App Engine




   ”Django foi a melhor coisa que aconteceu para o Python nos
   ultimos anos.”Luciano Ramalho, Presidente, Associa¸˜o Python Brasil
   ´                                                 ca

   http://code.google.com/intl/pt-BR/appengine/

   http://www.djangoproject.com/




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Por que Python?
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
   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: nosso ”segundo”encontro anual
      5   Diversos grupos de usu´rios ao redor do Brasil
                                a

   http://pythonbrasil.com.br




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

     1    Eduardo Dutka
     2    Eduardo da Silva
     3    Elvis Pf¨tzenreuter
                  u
     4    ´
          Erico Andrei
     5    Humberto Di´genes
                     o
     6    Mehran Misaghi
     7    Osvaldo Santana Neto
     8    Rodrigo Curvˆllo
                      e
     9    Rodrigo Senra
     10   Ramiro Luz

                 E muito obrigado a todos vocˆs pela presen¸a!
                                             e             c


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



                             Um de cada vez, por favor ;-)

  Contato:
     1   google*:       marcoandre@gmail.com

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

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

     4   twitter:     @marrcandre



                                       Muito obrigado!




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

Mais conteúdo relacionado

PDF
Por que Python? - FISL 10 - 2009
PDF
Por que Python? - PythonBrasil[5] - 2009
PDF
Por que Python - PyConBrasil 2008
PDF
Porque Python?
PDF
Por que Python - Latinoware 2008
PDF
Porque Python? Semana Acadêmica UTFPR 2011
PDF
Porque Python - PythonBrasil[6]
PDF
Por que Python? Latinoware 2011
Por que Python? - FISL 10 - 2009
Por que Python? - PythonBrasil[5] - 2009
Por que Python - PyConBrasil 2008
Porque Python?
Por que Python - Latinoware 2008
Porque Python? Semana Acadêmica UTFPR 2011
Porque Python - PythonBrasil[6]
Por que Python? Latinoware 2011

Mais procurados (19)

PPT
Python No Terra (2006-12-21)
PDF
Python Pythononcampus Uva 060609
PDF
Conhencendo Python e por que ela importa?
PDF
Introdução à Programação Python e Tk
PDF
Por que python? fisl 14 - 2013
PDF
Introdução à Programação em Python
KEY
Python, a arma secreta do Google
PDF
Programando para web com python - Introdução a Python
PDF
Hello, Python!
PPT
Apresentando a Linguagem de Programação Python
PPTX
Palestra Apresentando Python e Suas Aplicações
PDF
Python brasil[6]
PDF
Python Mini Ccurso Consegi2011
PDF
Introdução a Linguagem de Programação Python
PDF
Introdução à linguagem de programação Python
PDF
Por que Python? IFC Concórdia 2011
PDF
Introdução a linguagem Python
PDF
Python - Introdução
PDF
Apresentação python fábio jr alves
Python No Terra (2006-12-21)
Python Pythononcampus Uva 060609
Conhencendo Python e por que ela importa?
Introdução à Programação Python e Tk
Por que python? fisl 14 - 2013
Introdução à Programação em Python
Python, a arma secreta do Google
Programando para web com python - Introdução a Python
Hello, Python!
Apresentando a Linguagem de Programação Python
Palestra Apresentando Python e Suas Aplicações
Python brasil[6]
Python Mini Ccurso Consegi2011
Introdução a Linguagem de Programação Python
Introdução à linguagem de programação Python
Por que Python? IFC Concórdia 2011
Introdução a linguagem Python
Python - Introdução
Apresentação python fábio jr alves
Anúncio

Destaque (17)

PPT
Calculadora IP com libglade - PyconBrasil 2
PDF
Por que Python? - Latinoware 2009
PDF
Software Codigo Aberto Desktop
PDF
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
ODP
Pymordida0 Semana de computação da SOCIESC - 2008/10
PPT
Uso de POO com Python - PyconBrasil 2
PDF
Porque Python - FISL 9.0
PDF
Porque Python? FISL11
PPT
Versões do Ubuntu
PDF
Python na Ciência da Computação - FLISOL 2011
PPT
Python no Ensino Superior - PyconBrasil 1
PPT
Educação Continuada
PDF
Configurando o Geany para Python - 03/2012
PDF
Configurando o geany_para_python
PDF
Educação continuada
PDF
Resumo, Resenha e Resenha Crítica
PPT
Segurança da Informação
Calculadora IP com libglade - PyconBrasil 2
Por que Python? - Latinoware 2009
Software Codigo Aberto Desktop
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Pymordida0 Semana de computação da SOCIESC - 2008/10
Uso de POO com Python - PyconBrasil 2
Porque Python - FISL 9.0
Porque Python? FISL11
Versões do Ubuntu
Python na Ciência da Computação - FLISOL 2011
Python no Ensino Superior - PyconBrasil 1
Educação Continuada
Configurando o Geany para Python - 03/2012
Configurando o geany_para_python
Educação continuada
Resumo, Resenha e Resenha Crítica
Segurança da Informação
Anúncio

Semelhante a Por que Python? - FURB - 2009 (20)

PDF
Por que Python?
PDF
KEY
Python 01
PDF
Iniciando em Python
PDF
Tutorial Python - 1
PDF
Tutorial Python ed. #2
PDF
Python Training #1 - ed4
ODP
Python: programação divertida novamente
ODP
Python para desenvolvedores - material apoio (parte I)
PPTX
Python.pptx
PDF
Livro para desenvolvedores de Python
PDF
Minicurso Python
PDF
Python tutorial-ed3
PDF
Canivete python
KEY
Introdução ao Python & Web Services
PDF
Arduino e Python: Do It Yourself
PDF
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Por que Python?
Python 01
Iniciando em Python
Tutorial Python - 1
Tutorial Python ed. #2
Python Training #1 - ed4
Python: programação divertida novamente
Python para desenvolvedores - material apoio (parte I)
Python.pptx
Livro para desenvolvedores de Python
Minicurso Python
Python tutorial-ed3
Canivete python
Introdução ao Python & Web Services
Arduino e Python: Do It Yourself
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python

Último (19)

PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
COBITxITIL-Entenda as diferença em uso governança TI
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Apple Pippin Uma breve introdução. - David Glotz
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Processos na gestão de transportes, TM100 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula 18 - Manipulacao De Arquivos python
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx

Por que Python? - FURB - 2009

  • 1. Por que Python? 10 raz˜es para aprender Python o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e 21 de setembro 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˜ Google http://web.archive.org/web/19990204033714/google.stanford.edu/about.html Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 14. 3 - Python ´ utilizado l´ fora e a por grandes organiza¸oes c˜ Google ”Python tem sido uma parte importante do Google desde o in´ ıcio, e permanece assim conforme o sistema cresce e evolui. Hoje, dezenas de engenheiros do Google usam Python, e estamos procurando por mais pessoas com conhecimento nessa linguagem.”Peter Norvig, diretor de qualidade de busca do Google Inc. http://www.pythonbrasil.com.br/moin.cgi/PythonNoGoogle ”[...] nossa filosofia geral ´ ’Python onde podemos, C++ onde e somos obrigados.’ Python n˜o ´ definitivamente apenas um a e pequeno peda¸o, nem ´ usado apenas para tarefas ’de scripting’; se c e fic´ssemos sem todo nosso c´digo Python de uma hora para outra, a o nossa poderosa infra-estrutura que tem sido descrita como ’a arma secreta do Google’ ficaria abalada.”Alex Martelli, L´ T´cnico, ıder e Sistemas de Produ¸˜o, Google Inc. ca http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 15. 3 - Python ´ utilizado l´ fora e a por grandes organiza¸oes c˜ Youtube ”Python ´ r´pido o suficiente para o nosso site e permite que n´s e a o produzamos caracter´ısticas que pode ser mantidas em tempo recorde, com um m´ınimo de desenvolvedores.”Cuong Do, Arquiteto de Software, YouTube.com http://www.python.org/about/quotes/ ”O YouTube (uma das propriedades mais valiosas do Google) ´ e essencialmente todo Python [...].”Alex Martelli, L´ T´cnico, Sistemas ıder e de Produ¸˜o, Google Inc. ca http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 16. 3 - Python ´ utilizado l´ fora e a por grandes organiza¸oes c˜ Industrial Light and Magic ”Python desempenha um papel-chave no nosso esquema de produ¸˜o. Sem ela um projeto do tamanho de ’Guerras nas ca Estrelas: Epis´dio II’ teria sido muito dif´ de sair. Da o ıcil renderiza¸˜o da multid˜o ao processamento em lote e a ca a composi¸˜o, Python mant´m todas as partes unidas.”Tommy ca e Burnette, Diretor T´cnico Sˆnior, ILM e e ”Quando me transferi [...], todos os membros da equipe [...] me acompanharam — menos Tommy. Ele [...] fora contratado pela Industrial Light & Magic[...]. Tommy se tornou um destacado programador de linguagem Python, por sorte dele a linguagem escolhida pela empresa de Lucas. E sorte mesmo ´ quando o e preparo se une ` oportunidade. ”Randy Pausch, A Li¸˜o Final a ca http://www.python.org/about/quotes/ http://pythonologia.org/2008/09/24/a-licao-final/ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 17. 3 - Python ´ utilizado l´ fora e a por grandes organiza¸oes c˜ DreamWorks ”Gostar´ıamos de ser tudo Python, mas hoje ainda temos muito de Perl.”Ed Leonard, Diretor de Tecnologia de Anima¸˜o, DreamWorks ca ”A nossa equipe tem baseado a transi¸˜o de Perl para Python na ca facilidade. H´ trˆs raz˜es prim´rias para isso. A cria¸˜o de a e o a ca bindings em Python para uma biblioteca C++ ´ muito f´cil [...]. A e a natureza orientada a objeto de Python ´ muito atraente [...]. E e Python ´ uma cidad˜ de primeira classe [...] na nossa ind´stria. ” e a u Darin Grant, Chefe de Produ¸˜o de Tecnologia, DreamWorks ca http://marrcandre.blogspot.com/2007/06/linux-alimentando-o-ogro.html Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 18. 3 - Python ´ utilizado l´ fora e a por grandes organiza¸oes c˜ 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 por grandes organiza¸oes c˜ Diversos outros exemplos: 1 Nokia 2 RedHat 3 Canonical 4 OpenOffice 5 Blender 6 Gimp http://www.python.org/about/success/ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 20. 3 - Python ´ utilizado l´ fora e a em muitas aplica¸oes c˜ http://pt.wikipedia.org/wiki/Python Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 21. Raz˜o 4: a Python ´ utilizado aqui dentro e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 22. 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?
  • 23. 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?
  • 24. 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?
  • 25. 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?
  • 26. Raz˜o 5: a Python ´ utilizado na web ao redor do mundo e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 27. 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?
  • 28. 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?
  • 29. 5 - Python ´ utilizado na web e ao redor do mundo Outros sites: 1 Free Software Foundation 2 Bah´’´ International Community aı 3 Nokia 4 CBS 5 OTAN 6 Oxfam America 7 Trolltech 8 AOL Music Canada http://plone.net/sites/ http://code.djangoproject.com/wiki/DjangoPoweredSites Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 30. 5 - Python ´ utilizado na web e Django e o Google App Engine ”Django foi a melhor coisa que aconteceu para o Python nos ultimos anos.”Luciano Ramalho, Presidente, Associa¸˜o Python Brasil ´ ca http://code.google.com/intl/pt-BR/appengine/ http://www.djangoproject.com/ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 31. Raz˜o 6: a Python ´ utilizado na web aqui no Brasil e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 32. 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?
  • 33. 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?
  • 34. 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?
  • 35. 6 - Python ´ utilizado na web e aqui no Brasil Muitos outros exemplos: Cˆmara dos deputados a Presidˆncia da Rep´blica e u Carta na Escola SEBRAE CertiSign SERPRO Universidade Metodista UNESCO Brasil OAB/SP Varig Politec http://webinsider.uol.com.br/index.php/2006/08/28/python-e-opcao-para-desenvolvimento-web/ Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 36. Raz˜o 7: a Tem emprego para programadores Python Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 37. 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?
  • 38. 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?
  • 39. 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?
  • 40. 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?
  • 41. Raz˜o 8: a Python conversa com outras linguagens Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 42. 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?
  • 43. 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?
  • 44. 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?
  • 45. Raz˜o 9: a Python ´ multiplataforma e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 46. 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?
  • 47. 9 - Python ´ multiplataforma e Maemo http://www.maemo.org Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 48. 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?
  • 49. 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?
  • 50. 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?
  • 51. 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?
  • 52. Raz˜o 10: a Python ´ multiparadigma e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 53. 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?
  • 54. 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?
  • 55. 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?
  • 56. Bˆnus o Duas raz˜es adicionais o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 57. 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?
  • 58. 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: nosso ”segundo”encontro anual 5 Diversos grupos de usu´rios ao redor do Brasil a http://pythonbrasil.com.br Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 59. Agradecimentos 1 Eduardo Dutka 2 Eduardo da Silva 3 Elvis Pf¨tzenreuter u 4 ´ Erico Andrei 5 Humberto Di´genes o 6 Mehran Misaghi 7 Osvaldo Santana Neto 8 Rodrigo Curvˆllo e 9 Rodrigo Senra 10 Ramiro Luz E muito obrigado a todos vocˆs pela presen¸a! e c Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?
  • 60. Discuss˜o a Um de cada vez, por favor ;-) Contato: 1 google*: marcoandre@gmail.com 2 blog: http://marrcandre.blogspot.com 3 slideshare: http://slideshare.com/marrcandre 4 twitter: @marrcandre Muito obrigado! Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Por que Python?