SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Com Baterias Incluídas




      Msc. Jonh Edson Ribeiro de Carvalho
                               31.05.2007
                                  copyleft
Python com Baterias Incluídas

Jonh Edson Ribeiro de Carvalho
• Bacharel em Física pela UFF

• Mestre em Computação pela UFF

       •   Área: Computação Visual e Interfaces

• Professor Universitário desde 2000

       •   Docente Gama Filho

       •   Docente Faculdade Paraíso

• Pesquisa Atualmente

       •   Engine de Física para Jogos em GPU

       •   Reconhecimento de Padrões com uso de Morfologia

       Matemática



                                        Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

     Graal do Desenvolvedor

• Qualidade             • Extensibilidade
• Facilidade            • Escalabilidade
• Legibilidade          • Interoperabilidade
• Portabilidade         • Customização


Rapidez no Ciclo de Desenvolvimento

                                       Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas
Busca pela Ferramenta Perfeita




    http://people.mandriva.com/~prigaux/language-study/diagram.png
                                                     Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

2007   2006    Linguagem Taxa         Variação
1      1       Java       19.140%     -2.18%
2      2       C          15.152%     -2.54%
3      3       C++        10.114%     -0.82%
4      4       PHP        8.738%      -1.48%
5      5       VBasic     8.431%      -1.13%
6      6       Perl       6.152%      +0.10%
7      8       Python     3.779%      +0.74%
8      7       C#         3.656%      +0.38%
9      9       JavaScript 3.072%      +0.88%
10     19      Ruby       2.632%      +2.18%
http://www.tiobe.com/tpci.htm
                                       Jonh Edson Ribeiro de Carvalho
                                       Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Quando?
• Criada em 1989 pelo holandês Guido
 van Rossum no Centrum voor
 Wiskunde en Informatica (CWI), em
 Amsterdã,Holanda;
• Influenciada pela Linguagem ABC,
 que focava em ser uma linguagem de
 programação para usuários que não
 eram programadores.
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Ambiente de Concepção
• Universidade - pessoas altamente
 especializadas para desenvolver e
 opinar sobre os elementos do projeto;
• Descontraído - o nome Python vem
 da série de humor
 Monty Python’s Flying Circus;
• Sem prazos, Sem pressão -
 resultando em maior qualidade.
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

O que é Python?
• Interpretada – facilita a portabilidade
• Interativa – facilita testes,
 desenvolvimento rápido, protótipos;
• Orientada a Objetos – números,
 strings, funções, instâncias, métodos...




                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

O que é Python?
• Fortemente Tipada – não se mistura
 tipos automagicamente;
• Tipagem Dinâmica – a tipagem de
 objeto é feita em tempo de execução.
 Um objeto tem tipo uma variável não.




                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Por que Python?
• Poderosas Estruturas de Dados
 Nativas (listas, dicionários (hash
 tables), strings, ... otimizados e de
 fácil uso;
• Fácil Aprendizagem e Manutenção
• Software Livre - Disponível com
 código aberto e sem custo.


                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Por que Python?
• Interoperabilidade com C/C++/Java/
 Delphi/Lua/Ruby
• Baterias Incluídas - Extensa
 Biblioteca Padrão ( contém diversos
 recursos úteis: Interface Gráfica (Tk),
 XML, Servidores (TCP,UDP, HTTP, ...),
 HTML, protocolos de internet (email,
 http,...), xmlrpc, ...
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Onde?
• Unix: HP-UX, Solaris, Linux
 (freqüentemente pré-instalada), ...
• Mac OSX (sempre pré-instalada)
• Windows: 9x, Me, 2K, XP (ctypes,
 win32all)
• Nokia Série 60
• PalmOS (Pippy)


                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Como?
• Não existem delimitadores de bloco
 => Identação (indenting)
• Suporta Threads, OO, herança
 múltipla e tratamento de exceções
• Compilação implícita de bytecode
• Garbage collection
• Meta-informação e reflexão
 computacional
                                Jonh Edson Ribeiro de Carvalho
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Interoperabilidade
• CPython - (onde existir um compilador C
  ISO/IEC 9899:1990)
• Jython - (máquina virtual Java)
• IronPython - Python for .NET [Brian
  Lloyd], (em desenvolvimento na M$)
• PyPy (Python implementado em Python)
• Python for Delphi
• LunaticPython (Lua)
• Nokia – Python for Series 60(S60)


                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Jython   • É uma implementação de alto nível
           do Python escrito 100% em Java. Isso
           permite que você escreva códigos em
           Python e os faça rodar dentro de
           qualquer JVM (Java Virtual Machine).
         • Para instalarmos o Jython é
           necessário ter o JSDK, pois o Jython
           utiliza o javac para compilar os
           programas em Python para Java.
         • java jython_21

                                     h ttp ://w w w .jy th o n .o r g

                                         Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Jython   • import javax.swing as libswing
         • pnumero =
           libswing.JOptionPane.showInputDialog(quot;Digite
           um Numero Inteiro: quot;)
         • snumero =
           libswing.JOptionPane.showInputDialog(quot;Digite
           um Numero Inteiro: quot;)
         • soma = int(pnumero) + int(snumero)
         • libswing.JOptionPane.showMessageDialog(None,
           quot;A soma eh %d quot; % soma)




                                         Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Iron     import sys
Python    sys.path.append(r'C:Python24Lib')
         import clr
         clr.AddReference(quot;System.Windows.Formsquot;)
         from System.Windows.Forms import Application, Form

         class HelloWorldForm(Form):
             def __init__(self):
                self.Text = 'Hello World'
                self.Name = 'Hello World'

         form = HelloWorldForm()
         Application.Run(form)




                                            Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Python   • import appuifw, key_codes,
For        glcanvas, graphics
         • from gles import *
Series   ...
S60
         • def drawbox(aSizeX, aSizeY,
           aSizeZ):

         • #Desenha uma caixa com triângulos.
         • glScalef( aSizeX, aSizeY, aSizeZ )
         • glDrawElementsub( GL_TRIANGLES,
           triangles )




                                         Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos




                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos no Brasil
       • Embratel: monitoramento das interfaces de backbone e

       clientes de internet, tamb´em existem scripts de uso interno.

       • CPqD: monitoramento de centrais telefˆonicas.
       • Mandriva: Gerenciamento de pacotes da distribuição Linux e

       ferramentas de uso interno.

       • Async: desenvolvimento de software de automação comercial
       • GPr Sistemas: sistemas como monitoramento de transporte

       • terrestre via satélites

                              Varig, Serpro, Câmara,
       • Para Sistemas Web:

       Interlegis, ...
                                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos no Mundo
      Industrial Light & Magic: automação interna: “Python
      plays a key role in our production pipeline. Without it a

      project the size of Star Wars: Episode II would have been very

      difficult to pull off. From crowd rendering to batch processing

      to compositing, Python binds all things together”

      NASA: repositório de CAD/CAE/PDM, gerência de modelos,
      integração e sistema colaborativo: “We chose Python because

      it provides maximum productivity, code that’s clear and easy

      to maintain, strong and extensive (and growing!) libraries,

      and excellent capabilities for integration with other

      applications on any platform.”

                                                 Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos no Mundo
      Apple: ferramenta padrão desde o MacOS X.
      Disney: jogos e Sistemas internos de automação e criação,
      patrocínio do PyQT.

      Bank Boston: sistema Web usando Python e Zope.
      Atari: jogos, como “Temple of Elemental Evil”.
      Yahoo!: Yahoo! Groups foi escrito inicialmente em puro
      python: 180.000 linhas de código cuidavam de tudo, tratando

      mais de 200 mensagens/segundo em um simples Pentium

      400Mhz.

      Nortel: sistemas web “ChartWare”, “WebBook” e
      “WebTrack” são exemplos.


                                              Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos no Mundo
      Philips: automação da linha de semicondutores na fábrica de
      Fishkill.

      Lawrence Livermore National Laboratories: ambiente
      de engenharia numérica.

      Red Hat: diversas ferramentas para linux, o instalador das
      distribuições Red Hat e Fedora (“Anaconda”).

      Gentoo Linux: sistema de gerência de pacotes “Portage”.
      Ubuntu: diversas ferramentas, gerêcnia de pacotes, instalador.

      Blender3D: software pode ser estendido usando plugins
      Python.

      Histórias de Sucesso:
          • http://www.python.org/about/success/
                                               Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos no Mundo: GOOGLE
      Maior “case” Python da atualidade:

      ”Python has been an important part of Google since the

      beginning, and remains so as the system grows and evolves.

      Today dozens of Google engineers use Python, and we’re

      looking for more people with skills in this language.”

      — Peter Norvig, director of search quality at Google, Inc.




                                                 Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos no Mundo: GOOGLE
      Sistema de ajuda do GMail
      Google Groups
      Sistema de compilação de aplicativos
      (build system).
      Sistema de empacotamento e entrega de dados
      (packaging system).
      Sistema de monitoramento e manutenção
      do cluster
      Sistema de testes




                                      Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Casos no Mundo: GOOGLE
      • Análise de registros (logs), e análise de falsos
      clicks no Sponsored Ads.
      • Prototipação
      • Recentemente liberando código em
      http://code.google.com, como Goopy.
      • Requisito para contratar profissionais Java:
                saber Python! :-)




                                         Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Opiniões: Bruce Eckel
      É o autor de livros de renome, como “Thinking in
      Java” e “Thinking in C++”, mas hoje prefere
      pensar em Python.
      Ele apresentou 10 razões por que ele ama esta
      linguagem, Algumas delas:


      • Menos Porcaria: Dizem que uma pessoa armazena 7 ± 2
      informações ao mesmo tempo, quanto menos porcaria, melhor.

      • Produtividade é mais importante que
       Performance: otimizar prematuramente é um
      grande erro.


                                            Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Opiniões: Bruce Eckel
      • Não tem pessoal de marketing envolvido: todas as
      decisões da linguagem são com fundamentos técnicos,
       vêm de quem usa a linguagem.
      • Digite menos, Olhe mais: com Python você
      consegue expressar mais com menos, digitando menos,
      faz mais rápido, com maior densidade,
      consegue analisar mais idéias ao mesmo tempo.
      Obtém-se ganho de 5 a 10 vezes.
      • Python não fica entre você e o problema;
      Os chutes geralmente estão certos: Geralmente é
      mais rápido digitar o que você acha correto e rodar o
      teste do que procurar na documentação.
                                           Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Computação Gráfica
• Módulos

  PyOpenGL;
•
  PyGame (SDL);
•
  Pymedia;
•
  CGkit;
•
  PyODE;
•
  PyGPU (Processamento de Imagens na
•
  GPU);
• Visual Python(Framework de Alto
  Nível);

                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Computação Gráfica
• Programas Gráficos

• Blender
• Soya (Engine Jogos)
• Kyra (Engine Jogos)

• Games

• Civilization IV
• E muitos jogos usando como script de
  Inteligência Artificial junto com Lua.

                                Jonh Edson Ribeiro de Carvalho
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Sucessos em Software Livre
    Gimp
•
    BrOffice
•
    BitTorrent
•
    Gnumeric
•
    Inkscape
•
    Scribus
•




                                Jonh Edson Ribeiro de Carvalho
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

FrameWorks Web
    Zope / Plone
•
    Django
•
    Pylons
•
    TurboGears
•




                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Fazendo de Tudo
• Bancos de Dados: ODBC, mySQL,
  Postgres, DCOracle,SQLServer, sqlite,
  gadfly, ZODB, PyDO, Metakit
• Protocolos de Rede: asyncore,
  htmllib, SimpleHTTPServer, urllib,
  ftplib, poplib, smtplib, telnetlib, Twisted
• GUI: Tkinter, wxPython, PyGTk, PyQt,
  PyKDE, Pythonwin
• Ciência: Numarray, SciPy, BioPython,
  AstroPy, Py2R/SPlus
• Proc. Imagens: PIL, PythonMagick,
  Gimp-python
                                Jonh Edson Ribeiro de Carvalho
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

FrameWorks Web
• XML: PyXML, 4Suite, ElementTree,
  RDFLib, Cwm
• Web: Webware, Cherrypy, Quixote,
  PSP, mod_python, Nevow
• IDE: Emacs,vi, idle, SPE, Pythonwin,
  Komodo, BlackAdder, PyScripter, Pida,
  Eclipse(Pydev), Boa Constructor, Eric,

        Gazpacho(Glade)



                                Jonh Edson Ribeiro de Carvalho
                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Linhan Pder PCódigo e Indentação
         P r e s e n ta tio o w e o in t .

      • a o =e r1 o in tP r e s e n t a tio n .
        Pw P
        b=2
        if a < b:
            print quot;a é menor quot;
        else :
            print quot;b é menor quot;


      • Maiúsculas e Minúsculas são diferentes!




                                                  Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Literaisw e r P o in t .
         P r e s e n ta tio n P o

      • • Strings r e s e n t a tio n .
          P o w e r P o in tP
            •Convencional: ’texto’ ou quot;textoquot;
            •Multi-Line: ’’’texto várias linhas’’’ ou quot;quot;quot;texto várias
            linhasquot;quot;quot;
            •Unicode: u’texto unicode’ ou uquot;textoquot;, ...
            •Raw: r’texto bruton’
            •Strings em várias linhas são concatenadas.

      • Números parecido com outras linguagens, C,
        C++, Java:
            •Inteiro: 123 (decimal), 0632 (octal), 0xff00
            (hexadecimal)
            •Longo: 123L ou 123l
            •Ponto Flutuante: 3.14, 10., .12, 1.23e-9
            •Complexos: 10.0 + 3j


                                                     Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Linhan Pder PCódigo e Indentação
         P r e s e n ta tio o w e o in t .

      • a o w e rquot;textoquot;e n t a tio n .
        P = P o in tP r e s

        a = 123

        a=[1,2,3]
        b = [ a , quot;123quot; , 333 ]
        d = { quot;chavequot;: quot;valorquot; , quot;testequot;: a , quot;bquot; : 12345 }




                                              Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Controler de. Fluxo
         P r e s e n ta tio n P o w e P o in t

        idade = int ( raw_input ( quot; Idade :quot; ) )
      • P o w e r P o in tP r e s e n t a tio n .
        if idade < 2:
            print quot; Bebe quot;
        elif 2 <= idade <= 13:
            print quot; Criançaa quot;
        elif 14 <= idade <= 19:
            print quot; Adolescente quot;
        else :
            print quot; Adulto quot;




                                                    Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Laçosn P o w e r P o in t .
         P r e s e n ta tio

      • P o w e r P o in tP r e s ein tio[ .
        for fruta n t a n     quot;Bananaquot; , quot;Maçaquot; , quot;Uvaquot; ]:
                   print quot; Fruta :quot; , fruta



         d = { quot;aquot;:1 , quot;bquot;:2 }
         for chave , valor in d. iteritems ():
             print quot;Chave:quot;,chave, quot;,Valor:quot;,valor




                                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Funçõese r P o in t .
         P r e s e n ta tio n P o w

      • P o w e r P o in tP r e s e n t a tio( .
        def fatorial n                             numero ):
         if numero <= 1:
             return 1
         else :
             return ( numero * fatorial ( numero - 1 ) )




                                                               Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Classesw e r P o in t .
         P r e s e n ta tio n P o
          import datetime
      • P o w e r P o in tP r e s e n t a tio n .
         class Pessoa ( object ):
             def __init__(self,nome,nasc):
                 self.nome = nome
                 self.nasc = nasc
             def idade( self ):
                 delta=datetime.date.today()-self.nasc
                 return delta . days / 365
             def __str__( self ):
                 return ’%s,%d anos’%(self.nome,self
        .idade())
         aluno=Pessoa( ’Aluno Teste’,
         datetime.date (1972,7,19))
         print aluno.idade()
         print aluno


                                                    Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Listasw e r P o in t .
         P r e s e n ta tio n P o
      • Criação
      • P o w e r P o in tP r e s e n t a tio n .

          def lista = [ 10 , 2 , 3 , ’texto ’ , 20 ]

      • Acesso
          print lista [ 2 ] # imprime ’3 ’

      • Acesso a pedaço da lista
          sub_lista = lista[2:4] # pega de 2 a 4(não incluso)

       Outras Operações: Ordenar, Inverter, Contar
       Ocorrência de Elemento, etc.

                                                    Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Tuplas o -e rParecido com as listas, porém é
         P r e s e n ta tio n P w P o in t .
          imutável: não se pode acrescentar, apagar ou
          modificars e n t a tio n .
           P o w e r P o in tP r e valores.
      •

          >>> tupla = ( 1   , 2 , ’abc ’ )
          >>> tupla [ 0 ]
          1
          >>> tupla [ : 2   ]
          (1 , 2)
          >>> tupla [ 2 :   ]
          (’abc ’ ,)
          >>> len ( tupla   )
          3
          >>> t = 1 , 2 ,   3
          >>> t
          (1 , 2 , 3)


                                             Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      •• Mapeamento - Hash Tables
         P r e s e n ta tio n P o w e r P o in t .
      • Dicionários
      • P o w e r P o in tP r e s e n t a tio n .

       >>> d = {’chave’: ’valor ’,’nome’:’Aluno Teste’}

       >>> print d[ ’chave ’ ] # imprime ’ v a l o r ’




                                                    Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

           Zen of Python
Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Plano é melhor que aglomerado.
Esparso é melhor que denso.
Legibilidade faz diferença.
Casos especiais não são especiais o bastante
para quebrar as regras.
Embora a praticidade vença a pureza.
Erros nunca devem passar silenciosamente.

                                            Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

           Zen of Python
A menos que sejam explicitamente silenciados.
Diante da ambigüidade, recuse a tentação de adivinhar.
Deve haver um -- e preferencialmente só um -- modo óbvio
 para fazer algo.
Embora esse modo possa não ser óbvio à primeira vista a
 menos que você seja holandês.
Agora é melhor que nunca.
Embora nunca freqüentemente seja melhor que
 *exatamente* agora.
Se a implementação é difícil de explicar, é uma má idéia.
Se a implementação é fácil de explicar, pode ser uma boa
 idéia.
                                             Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Comunidade Brasileira
•Site: Python Brasil
   •www.pythonbrasil.com.br
•Email:
   • python-brasil@yahoogrupos.com.br
•IRC:
   • irc.freenode.org, canal #python-br
•Congresso:
   •www.pyconbrasil.com.br

                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Referências Bibliográficas
• Python - www.python.org
• Python Brasil - www.pythonbrasil.com.br
• WiKiPedia - http://pt.wikipedia.org/wiki/Python
• Rodrigo Senra - www.rodrigo.senra.nom.br
• Gustavo Barbieri - www.gustavobarbieri.com.br
• CookBook -
   •www.aspn.activestate.com/ASPN/Python/Cookbook/
• OnLamp - http://www.onlamp.com/python/
• Eggs - www.python-eggs.org/links.html




                                     Jonh Edson Ribeiro de Carvalho
Com Baterias Incluídas



Msc. Jonh Edson Ribeiro de Carvalho
    email: visual@visual.pro.br
      site: www.visual.pro.br

Mais conteúdo relacionado

Mais procurados

Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
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 para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
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 No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 
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
 
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
 
Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Rudá Moura
 
O corretor gramatical CoGrOO - IX Evidosol
O corretor gramatical CoGrOO - IX EvidosolO corretor gramatical CoGrOO - IX Evidosol
O corretor gramatical CoGrOO - IX EvidosolWilliam Colen
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMarcel Caraciolo
 
Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Marco Mendes
 
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
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017Vitor Mattos
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 

Mais procurados (20)

Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Canivete python
Canivete pythonCanivete python
Canivete 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 para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
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
 
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
 
Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Mini Curso Python
Mini Curso PythonMini Curso Python
Mini Curso Python
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Porque Python?
Porque Python?Porque Python?
Porque Python?
 
O corretor gramatical CoGrOO - IX Evidosol
O corretor gramatical CoGrOO - IX EvidosolO corretor gramatical CoGrOO - IX Evidosol
O corretor gramatical CoGrOO - IX Evidosol
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
 
Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Por que Python - Latinoware 2008
Por que Python - Latinoware 2008
 
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
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 

Destaque (9)

Pilhas, Lâmpadas e Baterias
Pilhas, Lâmpadas e BateriasPilhas, Lâmpadas e Baterias
Pilhas, Lâmpadas e Baterias
 
Circuitos eletricos
Circuitos eletricosCircuitos eletricos
Circuitos eletricos
 
Descartes de pilhas e baterias 2015
Descartes de pilhas e baterias 2015Descartes de pilhas e baterias 2015
Descartes de pilhas e baterias 2015
 
Baterias de Automóveis
Baterias de Automóveis Baterias de Automóveis
Baterias de Automóveis
 
Fis evolução das baterias
Fis   evolução das bateriasFis   evolução das baterias
Fis evolução das baterias
 
História das pilhas
História das pilhasHistória das pilhas
História das pilhas
 
Aptidão fisica do idoso tcc
Aptidão fisica  do idoso tccAptidão fisica  do idoso tcc
Aptidão fisica do idoso tcc
 
Pilhas
PilhasPilhas
Pilhas
 
Pilhas e baterias
Pilhas e bateriasPilhas e baterias
Pilhas e baterias
 

Semelhante a Python: Uma linguagem poderosa com baterias incluídas

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...Rodrigo Wanderley de Melo Cardoso
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Marco Antonio Maciel
 
Desenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreDesenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreGivanaldo Rocha
 
Python - o que, porque, como e quando
Python - o que, porque, como e quandoPython - o que, porque, como e quando
Python - o que, porque, como e quandoGustavo Carvalho
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCETiago Freire
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfAthena542429
 
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...Rodrigo Wanderley de Melo Cardoso
 
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Rodrigo Wanderley de Melo Cardoso
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...tdc-globalcode
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
Sistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosSistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosGustavo Ferreira Palma
 
Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?David Ruiz
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 

Semelhante a Python: Uma linguagem poderosa com baterias incluídas (20)

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python e suas aplicações
Python e suas aplicaçõesPython e suas aplicações
Python e suas aplicações
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...O ecossistema e o estado atual do php  - o presente, o passado e o futuro da ...
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011
 
Desenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreDesenvolvimento Web com Software Livre
Desenvolvimento Web com Software Livre
 
Python - o que, porque, como e quando
Python - o que, porque, como e quandoPython - o que, porque, como e quando
Python - o que, porque, como e quando
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
 
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
Ecossistema php: O presente, o passado e o futuro da linguagem (back-end) mai...
 
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Sistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosSistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursos
 
Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 

Python: Uma linguagem poderosa com baterias incluídas

  • 1. Com Baterias Incluídas Msc. Jonh Edson Ribeiro de Carvalho 31.05.2007 copyleft
  • 2. Python com Baterias Incluídas Jonh Edson Ribeiro de Carvalho • Bacharel em Física pela UFF • Mestre em Computação pela UFF • Área: Computação Visual e Interfaces • Professor Universitário desde 2000 • Docente Gama Filho • Docente Faculdade Paraíso • Pesquisa Atualmente • Engine de Física para Jogos em GPU • Reconhecimento de Padrões com uso de Morfologia Matemática Jonh Edson Ribeiro de Carvalho
  • 3. Python com Baterias Incluídas Graal do Desenvolvedor • Qualidade • Extensibilidade • Facilidade • Escalabilidade • Legibilidade • Interoperabilidade • Portabilidade • Customização Rapidez no Ciclo de Desenvolvimento Jonh Edson Ribeiro de Carvalho
  • 4. Python com Baterias Incluídas Busca pela Ferramenta Perfeita http://people.mandriva.com/~prigaux/language-study/diagram.png Jonh Edson Ribeiro de Carvalho
  • 5. Python com Baterias Incluídas 2007 2006 Linguagem Taxa Variação 1 1 Java 19.140% -2.18% 2 2 C 15.152% -2.54% 3 3 C++ 10.114% -0.82% 4 4 PHP 8.738% -1.48% 5 5 VBasic 8.431% -1.13% 6 6 Perl 6.152% +0.10% 7 8 Python 3.779% +0.74% 8 7 C# 3.656% +0.38% 9 9 JavaScript 3.072% +0.88% 10 19 Ruby 2.632% +2.18% http://www.tiobe.com/tpci.htm Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 6. Python com Baterias Incluídas Quando? • Criada em 1989 pelo holandês Guido van Rossum no Centrum voor Wiskunde en Informatica (CWI), em Amsterdã,Holanda; • Influenciada pela Linguagem ABC, que focava em ser uma linguagem de programação para usuários que não eram programadores. Jonh Edson Ribeiro de Carvalho
  • 7. Python com Baterias Incluídas Ambiente de Concepção • Universidade - pessoas altamente especializadas para desenvolver e opinar sobre os elementos do projeto; • Descontraído - o nome Python vem da série de humor Monty Python’s Flying Circus; • Sem prazos, Sem pressão - resultando em maior qualidade. Jonh Edson Ribeiro de Carvalho
  • 8. Python com Baterias Incluídas O que é Python? • Interpretada – facilita a portabilidade • Interativa – facilita testes, desenvolvimento rápido, protótipos; • Orientada a Objetos – números, strings, funções, instâncias, métodos... Jonh Edson Ribeiro de Carvalho
  • 9. Python com Baterias Incluídas O que é Python? • Fortemente Tipada – não se mistura tipos automagicamente; • Tipagem Dinâmica – a tipagem de objeto é feita em tempo de execução. Um objeto tem tipo uma variável não. Jonh Edson Ribeiro de Carvalho
  • 10. Python com Baterias Incluídas Por que Python? • Poderosas Estruturas de Dados Nativas (listas, dicionários (hash tables), strings, ... otimizados e de fácil uso; • Fácil Aprendizagem e Manutenção • Software Livre - Disponível com código aberto e sem custo. Jonh Edson Ribeiro de Carvalho
  • 11. Python com Baterias Incluídas Por que Python? • Interoperabilidade com C/C++/Java/ Delphi/Lua/Ruby • Baterias Incluídas - Extensa Biblioteca Padrão ( contém diversos recursos úteis: Interface Gráfica (Tk), XML, Servidores (TCP,UDP, HTTP, ...), HTML, protocolos de internet (email, http,...), xmlrpc, ... Jonh Edson Ribeiro de Carvalho
  • 12. Python com Baterias Incluídas Onde? • Unix: HP-UX, Solaris, Linux (freqüentemente pré-instalada), ... • Mac OSX (sempre pré-instalada) • Windows: 9x, Me, 2K, XP (ctypes, win32all) • Nokia Série 60 • PalmOS (Pippy) Jonh Edson Ribeiro de Carvalho
  • 13. Python com Baterias Incluídas Como? • Não existem delimitadores de bloco => Identação (indenting) • Suporta Threads, OO, herança múltipla e tratamento de exceções • Compilação implícita de bytecode • Garbage collection • Meta-informação e reflexão computacional Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 14. Python com Baterias Incluídas Interoperabilidade • CPython - (onde existir um compilador C ISO/IEC 9899:1990) • Jython - (máquina virtual Java) • IronPython - Python for .NET [Brian Lloyd], (em desenvolvimento na M$) • PyPy (Python implementado em Python) • Python for Delphi • LunaticPython (Lua) • Nokia – Python for Series 60(S60) Jonh Edson Ribeiro de Carvalho
  • 15. Python com Baterias Incluídas Jython • É uma implementação de alto nível do Python escrito 100% em Java. Isso permite que você escreva códigos em Python e os faça rodar dentro de qualquer JVM (Java Virtual Machine). • Para instalarmos o Jython é necessário ter o JSDK, pois o Jython utiliza o javac para compilar os programas em Python para Java. • java jython_21 h ttp ://w w w .jy th o n .o r g Jonh Edson Ribeiro de Carvalho
  • 16. Python com Baterias Incluídas Jython • import javax.swing as libswing • pnumero = libswing.JOptionPane.showInputDialog(quot;Digite um Numero Inteiro: quot;) • snumero = libswing.JOptionPane.showInputDialog(quot;Digite um Numero Inteiro: quot;) • soma = int(pnumero) + int(snumero) • libswing.JOptionPane.showMessageDialog(None, quot;A soma eh %d quot; % soma) Jonh Edson Ribeiro de Carvalho
  • 17. Python com Baterias Incluídas Iron import sys Python sys.path.append(r'C:Python24Lib') import clr clr.AddReference(quot;System.Windows.Formsquot;) from System.Windows.Forms import Application, Form class HelloWorldForm(Form): def __init__(self): self.Text = 'Hello World' self.Name = 'Hello World' form = HelloWorldForm() Application.Run(form) Jonh Edson Ribeiro de Carvalho
  • 18. Python com Baterias Incluídas Python • import appuifw, key_codes, For glcanvas, graphics • from gles import * Series ... S60 • def drawbox(aSizeX, aSizeY, aSizeZ): • #Desenha uma caixa com triângulos. • glScalef( aSizeX, aSizeY, aSizeZ ) • glDrawElementsub( GL_TRIANGLES, triangles ) Jonh Edson Ribeiro de Carvalho
  • 19. Python com Baterias Incluídas Casos Jonh Edson Ribeiro de Carvalho
  • 20. Python com Baterias Incluídas Casos no Brasil • Embratel: monitoramento das interfaces de backbone e clientes de internet, tamb´em existem scripts de uso interno. • CPqD: monitoramento de centrais telefˆonicas. • Mandriva: Gerenciamento de pacotes da distribuição Linux e ferramentas de uso interno. • Async: desenvolvimento de software de automação comercial • GPr Sistemas: sistemas como monitoramento de transporte • terrestre via satélites Varig, Serpro, Câmara, • Para Sistemas Web: Interlegis, ... Jonh Edson Ribeiro de Carvalho
  • 21. Python com Baterias Incluídas Casos no Mundo Industrial Light & Magic: automação interna: “Python plays a key role in our production pipeline. Without it a project the size of Star Wars: Episode II would have been very difficult to pull off. From crowd rendering to batch processing to compositing, Python binds all things together” NASA: repositório de CAD/CAE/PDM, gerência de modelos, integração e sistema colaborativo: “We chose Python because it provides maximum productivity, code that’s clear and easy to maintain, strong and extensive (and growing!) libraries, and excellent capabilities for integration with other applications on any platform.” Jonh Edson Ribeiro de Carvalho
  • 22. Python com Baterias Incluídas Casos no Mundo Apple: ferramenta padrão desde o MacOS X. Disney: jogos e Sistemas internos de automação e criação, patrocínio do PyQT. Bank Boston: sistema Web usando Python e Zope. Atari: jogos, como “Temple of Elemental Evil”. Yahoo!: Yahoo! Groups foi escrito inicialmente em puro python: 180.000 linhas de código cuidavam de tudo, tratando mais de 200 mensagens/segundo em um simples Pentium 400Mhz. Nortel: sistemas web “ChartWare”, “WebBook” e “WebTrack” são exemplos. Jonh Edson Ribeiro de Carvalho
  • 23. Python com Baterias Incluídas Casos no Mundo Philips: automação da linha de semicondutores na fábrica de Fishkill. Lawrence Livermore National Laboratories: ambiente de engenharia numérica. Red Hat: diversas ferramentas para linux, o instalador das distribuições Red Hat e Fedora (“Anaconda”). Gentoo Linux: sistema de gerência de pacotes “Portage”. Ubuntu: diversas ferramentas, gerêcnia de pacotes, instalador. Blender3D: software pode ser estendido usando plugins Python. Histórias de Sucesso: • http://www.python.org/about/success/ Jonh Edson Ribeiro de Carvalho
  • 24. Python com Baterias Incluídas Casos no Mundo: GOOGLE Maior “case” Python da atualidade: ”Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we’re looking for more people with skills in this language.” — Peter Norvig, director of search quality at Google, Inc. Jonh Edson Ribeiro de Carvalho
  • 25. Python com Baterias Incluídas Casos no Mundo: GOOGLE Sistema de ajuda do GMail Google Groups Sistema de compilação de aplicativos (build system). Sistema de empacotamento e entrega de dados (packaging system). Sistema de monitoramento e manutenção do cluster Sistema de testes Jonh Edson Ribeiro de Carvalho
  • 26. Python com Baterias Incluídas Casos no Mundo: GOOGLE • Análise de registros (logs), e análise de falsos clicks no Sponsored Ads. • Prototipação • Recentemente liberando código em http://code.google.com, como Goopy. • Requisito para contratar profissionais Java: saber Python! :-) Jonh Edson Ribeiro de Carvalho
  • 27. Python com Baterias Incluídas Opiniões: Bruce Eckel É o autor de livros de renome, como “Thinking in Java” e “Thinking in C++”, mas hoje prefere pensar em Python. Ele apresentou 10 razões por que ele ama esta linguagem, Algumas delas: • Menos Porcaria: Dizem que uma pessoa armazena 7 ± 2 informações ao mesmo tempo, quanto menos porcaria, melhor. • Produtividade é mais importante que Performance: otimizar prematuramente é um grande erro. Jonh Edson Ribeiro de Carvalho
  • 28. Python com Baterias Incluídas Opiniões: Bruce Eckel • Não tem pessoal de marketing envolvido: todas as decisões da linguagem são com fundamentos técnicos, vêm de quem usa a linguagem. • Digite menos, Olhe mais: com Python você consegue expressar mais com menos, digitando menos, faz mais rápido, com maior densidade, consegue analisar mais idéias ao mesmo tempo. Obtém-se ganho de 5 a 10 vezes. • Python não fica entre você e o problema; Os chutes geralmente estão certos: Geralmente é mais rápido digitar o que você acha correto e rodar o teste do que procurar na documentação. Jonh Edson Ribeiro de Carvalho
  • 29. Python com Baterias Incluídas Computação Gráfica • Módulos PyOpenGL; • PyGame (SDL); • Pymedia; • CGkit; • PyODE; • PyGPU (Processamento de Imagens na • GPU); • Visual Python(Framework de Alto Nível); Jonh Edson Ribeiro de Carvalho
  • 30. Python com Baterias Incluídas Computação Gráfica • Programas Gráficos • Blender • Soya (Engine Jogos) • Kyra (Engine Jogos) • Games • Civilization IV • E muitos jogos usando como script de Inteligência Artificial junto com Lua. Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 31. Python com Baterias Incluídas Sucessos em Software Livre Gimp • BrOffice • BitTorrent • Gnumeric • Inkscape • Scribus • Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 32. Python com Baterias Incluídas FrameWorks Web Zope / Plone • Django • Pylons • TurboGears • Jonh Edson Ribeiro de Carvalho
  • 33. Python com Baterias Incluídas Fazendo de Tudo • Bancos de Dados: ODBC, mySQL, Postgres, DCOracle,SQLServer, sqlite, gadfly, ZODB, PyDO, Metakit • Protocolos de Rede: asyncore, htmllib, SimpleHTTPServer, urllib, ftplib, poplib, smtplib, telnetlib, Twisted • GUI: Tkinter, wxPython, PyGTk, PyQt, PyKDE, Pythonwin • Ciência: Numarray, SciPy, BioPython, AstroPy, Py2R/SPlus • Proc. Imagens: PIL, PythonMagick, Gimp-python Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 34. Python com Baterias Incluídas FrameWorks Web • XML: PyXML, 4Suite, ElementTree, RDFLib, Cwm • Web: Webware, Cherrypy, Quixote, PSP, mod_python, Nevow • IDE: Emacs,vi, idle, SPE, Pythonwin, Komodo, BlackAdder, PyScripter, Pida, Eclipse(Pydev), Boa Constructor, Eric, Gazpacho(Glade) Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 35. Python com Baterias Incluídas Estrutura da Linguagem •• Linhan Pder PCódigo e Indentação P r e s e n ta tio o w e o in t . • a o =e r1 o in tP r e s e n t a tio n . Pw P b=2 if a < b: print quot;a é menor quot; else : print quot;b é menor quot; • Maiúsculas e Minúsculas são diferentes! Jonh Edson Ribeiro de Carvalho
  • 36. Python com Baterias Incluídas Estrutura da Linguagem •• Literaisw e r P o in t . P r e s e n ta tio n P o • • Strings r e s e n t a tio n . P o w e r P o in tP •Convencional: ’texto’ ou quot;textoquot; •Multi-Line: ’’’texto várias linhas’’’ ou quot;quot;quot;texto várias linhasquot;quot;quot; •Unicode: u’texto unicode’ ou uquot;textoquot;, ... •Raw: r’texto bruton’ •Strings em várias linhas são concatenadas. • Números parecido com outras linguagens, C, C++, Java: •Inteiro: 123 (decimal), 0632 (octal), 0xff00 (hexadecimal) •Longo: 123L ou 123l •Ponto Flutuante: 3.14, 10., .12, 1.23e-9 •Complexos: 10.0 + 3j Jonh Edson Ribeiro de Carvalho
  • 37. Python com Baterias Incluídas Estrutura da Linguagem •• Linhan Pder PCódigo e Indentação P r e s e n ta tio o w e o in t . • a o w e rquot;textoquot;e n t a tio n . P = P o in tP r e s a = 123 a=[1,2,3] b = [ a , quot;123quot; , 333 ] d = { quot;chavequot;: quot;valorquot; , quot;testequot;: a , quot;bquot; : 12345 } Jonh Edson Ribeiro de Carvalho
  • 38. Python com Baterias Incluídas Estrutura da Linguagem •• Controler de. Fluxo P r e s e n ta tio n P o w e P o in t idade = int ( raw_input ( quot; Idade :quot; ) ) • P o w e r P o in tP r e s e n t a tio n . if idade < 2: print quot; Bebe quot; elif 2 <= idade <= 13: print quot; Criançaa quot; elif 14 <= idade <= 19: print quot; Adolescente quot; else : print quot; Adulto quot; Jonh Edson Ribeiro de Carvalho
  • 39. Python com Baterias Incluídas Estrutura da Linguagem •• Laçosn P o w e r P o in t . P r e s e n ta tio • P o w e r P o in tP r e s ein tio[ . for fruta n t a n quot;Bananaquot; , quot;Maçaquot; , quot;Uvaquot; ]: print quot; Fruta :quot; , fruta d = { quot;aquot;:1 , quot;bquot;:2 } for chave , valor in d. iteritems (): print quot;Chave:quot;,chave, quot;,Valor:quot;,valor Jonh Edson Ribeiro de Carvalho
  • 40. Python com Baterias Incluídas Estrutura da Linguagem •• Funçõese r P o in t . P r e s e n ta tio n P o w • P o w e r P o in tP r e s e n t a tio( . def fatorial n numero ): if numero <= 1: return 1 else : return ( numero * fatorial ( numero - 1 ) ) Jonh Edson Ribeiro de Carvalho
  • 41. Python com Baterias Incluídas Estrutura da Linguagem •• Classesw e r P o in t . P r e s e n ta tio n P o import datetime • P o w e r P o in tP r e s e n t a tio n . class Pessoa ( object ): def __init__(self,nome,nasc): self.nome = nome self.nasc = nasc def idade( self ): delta=datetime.date.today()-self.nasc return delta . days / 365 def __str__( self ): return ’%s,%d anos’%(self.nome,self .idade()) aluno=Pessoa( ’Aluno Teste’, datetime.date (1972,7,19)) print aluno.idade() print aluno Jonh Edson Ribeiro de Carvalho
  • 42. Python com Baterias Incluídas Estrutura da Linguagem •• Listasw e r P o in t . P r e s e n ta tio n P o • Criação • P o w e r P o in tP r e s e n t a tio n . def lista = [ 10 , 2 , 3 , ’texto ’ , 20 ] • Acesso print lista [ 2 ] # imprime ’3 ’ • Acesso a pedaço da lista sub_lista = lista[2:4] # pega de 2 a 4(não incluso) Outras Operações: Ordenar, Inverter, Contar Ocorrência de Elemento, etc. Jonh Edson Ribeiro de Carvalho
  • 43. Python com Baterias Incluídas Estrutura da Linguagem •• Tuplas o -e rParecido com as listas, porém é P r e s e n ta tio n P w P o in t . imutável: não se pode acrescentar, apagar ou modificars e n t a tio n . P o w e r P o in tP r e valores. • >>> tupla = ( 1 , 2 , ’abc ’ ) >>> tupla [ 0 ] 1 >>> tupla [ : 2 ] (1 , 2) >>> tupla [ 2 : ] (’abc ’ ,) >>> len ( tupla ) 3 >>> t = 1 , 2 , 3 >>> t (1 , 2 , 3) Jonh Edson Ribeiro de Carvalho
  • 44. Python com Baterias Incluídas Estrutura da Linguagem •• Mapeamento - Hash Tables P r e s e n ta tio n P o w e r P o in t . • Dicionários • P o w e r P o in tP r e s e n t a tio n . >>> d = {’chave’: ’valor ’,’nome’:’Aluno Teste’} >>> print d[ ’chave ’ ] # imprime ’ v a l o r ’ Jonh Edson Ribeiro de Carvalho
  • 45. Python com Baterias Incluídas Zen of Python Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Plano é melhor que aglomerado. Esparso é melhor que denso. Legibilidade faz diferença. Casos especiais não são especiais o bastante para quebrar as regras. Embora a praticidade vença a pureza. Erros nunca devem passar silenciosamente. Jonh Edson Ribeiro de Carvalho
  • 46. Python com Baterias Incluídas Zen of Python A menos que sejam explicitamente silenciados. Diante da ambigüidade, recuse a tentação de adivinhar. Deve haver um -- e preferencialmente só um -- modo óbvio para fazer algo. Embora esse modo possa não ser óbvio à primeira vista a menos que você seja holandês. Agora é melhor que nunca. Embora nunca freqüentemente seja melhor que *exatamente* agora. Se a implementação é difícil de explicar, é uma má idéia. Se a implementação é fácil de explicar, pode ser uma boa idéia. Jonh Edson Ribeiro de Carvalho
  • 47. Python com Baterias Incluídas Comunidade Brasileira •Site: Python Brasil •www.pythonbrasil.com.br •Email: • python-brasil@yahoogrupos.com.br •IRC: • irc.freenode.org, canal #python-br •Congresso: •www.pyconbrasil.com.br Jonh Edson Ribeiro de Carvalho
  • 48. Python com Baterias Incluídas Referências Bibliográficas • Python - www.python.org • Python Brasil - www.pythonbrasil.com.br • WiKiPedia - http://pt.wikipedia.org/wiki/Python • Rodrigo Senra - www.rodrigo.senra.nom.br • Gustavo Barbieri - www.gustavobarbieri.com.br • CookBook - •www.aspn.activestate.com/ASPN/Python/Cookbook/ • OnLamp - http://www.onlamp.com/python/ • Eggs - www.python-eggs.org/links.html Jonh Edson Ribeiro de Carvalho
  • 49. Com Baterias Incluídas Msc. Jonh Edson Ribeiro de Carvalho email: visual@visual.pro.br site: www.visual.pro.br