SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
com baterias incluídas



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

Jonh Edson Ribeiro de Carvalho
• Doutorando em Computação pela UFF

• Mestre em Computação pela UFF

       •   Área: Computação Visual e Interfaces

•Graduado em Física pela UFF

• Professor Universitário desde 2000

       •   Docente RTI - Universidade Gama Filho

       •   Tutor à distância CEDERJ

• Pesquisa Atualmente

       •   Engine de Física para Jogos em GPU

       •   Reconhecimento de Gestos na GPU em ambientes

           multiprojetivos de Realidade Virtual

                                         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
2010 2009
1   1    Java                  17.994%   -1.53%                 A
2   2    C                     17.866%   +0.65%                 A
3   3    C++                   9.658%    -0.84%                 A
4   4    PHP                   9.180%    -0.21%                 A
5   5    VB                    5.413%    -3.07%                 A
6   7    C#                    4.986%    +0.54%                 A
7   6    Python                4.223%    -0.27%                 A
8   8    Perl                  3.427%    -0.60%                 A
9   19 Objective-C             3.150%    +2.54%                 A
10 11 Delphi                   2.428%


    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

                                     http : / www. jy thon. org
                                             /

                                         Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

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.showMessageDialog(None,
           "A soma eh %d " % 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("System.Windows.Forms")
         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

       • Para Sistemas Web:   Varig, Serpro, Câmara,
       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);
• CGkit;
• PyODE;
• PyCUDA, PyOpenCL
• PyGPU (Processamento de Imagens na
  GPU);
• Visual Python


                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Computação Gráfica
 Motor de Jogos

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

• Games
•Civilization IV
• Em muitos jogos usado como script
  para nteligência Artificial.
                                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

Nasa Science(Plone)




                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

CIA(Plone)




                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Globo.com(Django)




                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Globo.com(Django)




                                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


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

Fazendo de Tudo
• XML: PyXML, 4Suite, ElementTree,
  RDFLib, Cwm
• Web: Webware, Cherrypy, Quixote,
  PSP, mod_python, Nevow
• IDE: Spyder, Emacs, vi, Idle, SPE,
  Geany, Netbeans, Komodo, Wing,
  BlackAdder, PyScripter,
  Eclipse(Pydev),
 Boa Constructor, Eric,
 Gazpacho(Glade)

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

Ciências e Engenharias
• Ciência: Numarray, Numpy, SciPy,
  BioPython, AstroPy, Py2R/SPlus
• Proc. Imagens: PIL, PythonMagick,
  Gimp-python, OpenCV, VTK, ITK




• PyScience -   http://pyscience-brasil.wikidot.com/


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

Estrutura da Linguagem
      • LinhaonP owe rCódigo e Indentação
                       de
      • P re se nta ti    P oi nt.

      • a owe r P oi ntP re se nta ti on.
        P = 1
          b = 2
          if a < b:
              print "a é menor "
          else :
              print "b é menor "


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




                                            Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      • Literaisowe r P oi nt.
      • P re se nta ti onP

      •• Strings re se nta ti on.
         P owe r P oi ntP
           •Convencional: ’texto’ ou "texto"
           •Multi-Line: ’’’texto várias linhas’’’ ou """texto várias
           linhas"""
           •Unicode: u’texto unicode’ ou u"texto", ...
           •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
      • Tipagem rDinâmica
      • P re se nta ti onP owe P oi nt.

      • a owe r P oi ntP re se nta ti on.
        P = "texto"

          a = 123
          a = 123.0

          a = [ 1 , 2 , 3 ]
          b = [ a , "123" , 333 ]
          d = { "chave": "valor" , "teste": a , "b" : 12345 }




                                                Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      • Controle rdent.Fluxo
      • P re se nta ti onP owe P oi

       idade = int ( raw_input ( " Idade :" ) )
      • P owe r P oi ntP re se nta ti on.
       if idade < 2:
           print " Bebe "
       elif 2 <= idade <= 13:
           print " Criançaa "
       elif 14 <= idade <= 19:
           print " Adolescente "
       else :
           print " Adulto "




                                            Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      • Laços owe r P oi nt.
      • P re se nta ti onP

      • P owe r fruta se nta ti on.
        for P oi ntP re in [ "Banana"
                                  , "Maça" , "Uva" ]:
              print " Fruta :" , fruta



          d = { "a":1 , "b":2 }
          for chave , valor in d. iteritems ():
              print "Chave:",chave, ",Valor:",valor




                                           Jonh Edson Ribeiro de Carvalho
Python com Baterias Incluídas

Estrutura da Linguagem
      • Funções r P oi nt.
      • P re se nta ti onP owe

      • P owe r fatorial ti on.
        def P oi ntP re se nta ( 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
      • Classes r P oi nt.
      • P re se nta ti onP owe
          import datetime

      • P owe r P oi ntP re se nta ti on.
          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
      • Listas
      • P re se nta ti onP owe r P oi nt.
      • Criação
      • P owe r P oi ntP re se nta ti on.

          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 oweParecido com as listas, porém é
                           -
      • P re se nta ti onP   r P oi nt.
        imutável: não se pode acrescentar, apagar ou
      • modificar valores.
         P owe r P oi ntP re se nta ti on.

      >>> 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 re se nta ti onP owe r P oi nt.
      • Dicionários
      • P owe r P oi ntP re se nta ti on.

       >>> 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.python.org.br
•Email:
   • python-brasil@yahoogrupos.com.br
•IRC:
   • irc.freenode.org, canal #python-br
•Congresso:
   •www.pythonbrasil.org.br

                                Jonh Edson Ribeiro de Carvalho
Onde nos encontrar?
•   http://pythonrio.org
•   http://pythoncampus.org
•   http://dojorio.wordpress.com
•   http://horaextra.org

    Redes Sociais
•   Comunidade do Orkut - PythOnRio
•   Facebook - PythOnRio
•   Twitter - http://www.twitter.com/pythonrio
•   Flickr - http://www.flickr.com/pythonrio
•   Slideshare - http://www.slideshare.com/pythonrio
•   Vcasmo - http://www.vcasmo.com/user/pythonrio
•   Youtube
Listas de Discussão
•   PythonBrasil-pythonbrasil@yahoogrupos.com.br
•   PythOnRio - pythonrio@yahoogrupos.com.br
•   DojoRio - dojorio@googlegroups.com
•   #HoraExtra - horaextra@googlegroups.com


    Rede Social – Software Livre Brasil
• http://softwarelivre.org/pythonrio
• http://softwarelivre.org/pythoncampus
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

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano 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
 
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
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
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
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
NãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoNãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoOsvaldo Santana Neto
 
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
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 

Mais procurados (20)

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da 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, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem 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
 
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
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
NãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoNãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até Pensamento
 
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
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 

Destaque

Introduction to Python for Symbian S60
Introduction to Python for Symbian S60Introduction to Python for Symbian S60
Introduction to Python for Symbian S60Marcel Caraciolo
 
Mini-Curso Python para Symbian
Mini-Curso Python para SymbianMini-Curso Python para Symbian
Mini-Curso Python para SymbianMarcel Caraciolo
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Leonardo Melo Santos
 
Desenvolvimento web com Python, Zope e Plone
Desenvolvimento web com Python, Zope e PloneDesenvolvimento web com Python, Zope e Plone
Desenvolvimento web com Python, Zope e PloneJacson Tiola
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonJanderson Campêlo
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com PythonJardel Weyrich
 
Ensinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphicsEnsinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphicsGuilherme Medeiros
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Oficina Python e Google App Engine
Oficina Python e Google App EngineOficina Python e Google App Engine
Oficina Python e Google App EngineRodrigo Amaral
 

Destaque (17)

Introduction to Python for Symbian S60
Introduction to Python for Symbian S60Introduction to Python for Symbian S60
Introduction to Python for Symbian S60
 
Python na Web
Python na WebPython na Web
Python na Web
 
Mini-Curso Python para Symbian
Mini-Curso Python para SymbianMini-Curso Python para Symbian
Mini-Curso Python para Symbian
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
 
Desenvolvimento web com Python, Zope e Plone
Desenvolvimento web com Python, Zope e PloneDesenvolvimento web com Python, Zope e Plone
Desenvolvimento web com Python, Zope e Plone
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Python e MongoDB - Ensol
Python e MongoDB - EnsolPython e MongoDB - Ensol
Python e MongoDB - Ensol
 
Introducao python 2010
Introducao python 2010Introducao python 2010
Introducao python 2010
 
Diversidade na Comunidade Python
Diversidade na Comunidade PythonDiversidade na Comunidade Python
Diversidade na Comunidade Python
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
Ensinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphicsEnsinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphics
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
20 cool things python
20 cool things python20 cool things python
20 cool things python
 
Oficina Python e Google App Engine
Oficina Python e Google App EngineOficina Python e Google App Engine
Oficina Python e Google App Engine
 

Semelhante a Python com baterias incluídas v2.0

Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCETiago Freire
 
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
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
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
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?Izabela Guerreiro
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! dJoelmir Ribacki
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonIP10
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonFabio Spanhol
 
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
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/DjangoÁtila Bezerra
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termosValore I/O
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsHelio Colombe
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 

Semelhante a Python com baterias incluídas v2.0 (20)

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
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
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
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
AulaPython.pdf
AulaPython.pdfAulaPython.pdf
AulaPython.pdf
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do Python
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
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
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
Python b1tch
Python b1tchPython b1tch
Python b1tch
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 

Python com baterias incluídas v2.0

  • 1. com baterias incluídas Msc. Jonh Edson Ribeiro de Carvalho
  • 2. Python com Baterias Incluídas Jonh Edson Ribeiro de Carvalho • Doutorando em Computação pela UFF • Mestre em Computação pela UFF • Área: Computação Visual e Interfaces •Graduado em Física pela UFF • Professor Universitário desde 2000 • Docente RTI - Universidade Gama Filho • Tutor à distância CEDERJ • Pesquisa Atualmente • Engine de Física para Jogos em GPU • Reconhecimento de Gestos na GPU em ambientes multiprojetivos de Realidade Virtual 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 2010 2009 1 1 Java 17.994% -1.53% A 2 2 C 17.866% +0.65% A 3 3 C++ 9.658% -0.84% A 4 4 PHP 9.180% -0.21% A 5 5 VB 5.413% -3.07% A 6 7 C# 4.986% +0.54% A 7 6 Python 4.223% -0.27% A 8 8 Perl 3.427% -0.60% A 9 19 Objective-C 3.150% +2.54% A 10 11 Delphi 2.428% 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 http : / www. jy thon. org / Jonh Edson Ribeiro de Carvalho
  • 16. Python com Baterias Incluídas 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.showMessageDialog(None, "A soma eh %d " % 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("System.Windows.Forms") 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 • Para Sistemas Web: Varig, Serpro, Câmara, 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); • CGkit; • PyODE; • PyCUDA, PyOpenCL • PyGPU (Processamento de Imagens na GPU); • Visual Python Jonh Edson Ribeiro de Carvalho
  • 30. Python com Baterias Incluídas Computação Gráfica Motor de Jogos • Blender • Panda3D • Ogre3D • Soya (Engine Jogos) • Kyra (Engine Jogos) • Games •Civilization IV • Em muitos jogos usado como script para nteligência Artificial. 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 Nasa Science(Plone) Jonh Edson Ribeiro de Carvalho
  • 34. Python com Baterias Incluídas CIA(Plone) Jonh Edson Ribeiro de Carvalho
  • 35. Python com Baterias Incluídas Globo.com(Django) Jonh Edson Ribeiro de Carvalho
  • 36. Python com Baterias Incluídas Globo.com(Django) Jonh Edson Ribeiro de Carvalho
  • 37. 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 Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 38. Python com Baterias Incluídas Fazendo de Tudo • XML: PyXML, 4Suite, ElementTree, RDFLib, Cwm • Web: Webware, Cherrypy, Quixote, PSP, mod_python, Nevow • IDE: Spyder, Emacs, vi, Idle, SPE, Geany, Netbeans, Komodo, Wing, BlackAdder, PyScripter, Eclipse(Pydev), Boa Constructor, Eric, Gazpacho(Glade) Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 39. Python com Baterias Incluídas Ciências e Engenharias • Ciência: Numarray, Numpy, SciPy, BioPython, AstroPy, Py2R/SPlus • Proc. Imagens: PIL, PythonMagick, Gimp-python, OpenCV, VTK, ITK • PyScience - http://pyscience-brasil.wikidot.com/ Jonh Edson Ribeiro de Carvalho Jonh Edson Ribeiro de Carvalho
  • 40. Python com Baterias Incluídas Estrutura da Linguagem • LinhaonP owe rCódigo e Indentação de • P re se nta ti P oi nt. • a owe r P oi ntP re se nta ti on. P = 1 b = 2 if a < b: print "a é menor " else : print "b é menor " • Maiúsculas e Minúsculas são diferentes! Jonh Edson Ribeiro de Carvalho
  • 41. Python com Baterias Incluídas Estrutura da Linguagem • Literaisowe r P oi nt. • P re se nta ti onP •• Strings re se nta ti on. P owe r P oi ntP •Convencional: ’texto’ ou "texto" •Multi-Line: ’’’texto várias linhas’’’ ou """texto várias linhas""" •Unicode: u’texto unicode’ ou u"texto", ... •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
  • 42. Python com Baterias Incluídas Estrutura da Linguagem • Tipagem rDinâmica • P re se nta ti onP owe P oi nt. • a owe r P oi ntP re se nta ti on. P = "texto" a = 123 a = 123.0 a = [ 1 , 2 , 3 ] b = [ a , "123" , 333 ] d = { "chave": "valor" , "teste": a , "b" : 12345 } Jonh Edson Ribeiro de Carvalho
  • 43. Python com Baterias Incluídas Estrutura da Linguagem • Controle rdent.Fluxo • P re se nta ti onP owe P oi idade = int ( raw_input ( " Idade :" ) ) • P owe r P oi ntP re se nta ti on. if idade < 2: print " Bebe " elif 2 <= idade <= 13: print " Criançaa " elif 14 <= idade <= 19: print " Adolescente " else : print " Adulto " Jonh Edson Ribeiro de Carvalho
  • 44. Python com Baterias Incluídas Estrutura da Linguagem • Laços owe r P oi nt. • P re se nta ti onP • P owe r fruta se nta ti on. for P oi ntP re in [ "Banana" , "Maça" , "Uva" ]: print " Fruta :" , fruta d = { "a":1 , "b":2 } for chave , valor in d. iteritems (): print "Chave:",chave, ",Valor:",valor Jonh Edson Ribeiro de Carvalho
  • 45. Python com Baterias Incluídas Estrutura da Linguagem • Funções r P oi nt. • P re se nta ti onP owe • P owe r fatorial ti on. def P oi ntP re se nta ( numero ): if numero <= 1: return 1 else : return ( numero * fatorial ( numero - 1 ) ) Jonh Edson Ribeiro de Carvalho
  • 46. Python com Baterias Incluídas Estrutura da Linguagem • Classes r P oi nt. • P re se nta ti onP owe import datetime • P owe r P oi ntP re se nta ti on. 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
  • 47. Python com Baterias Incluídas Estrutura da Linguagem • Listas • P re se nta ti onP owe r P oi nt. • Criação • P owe r P oi ntP re se nta ti on. 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
  • 48. Python com Baterias Incluídas Estrutura da Linguagem • Tuplas oweParecido com as listas, porém é - • P re se nta ti onP r P oi nt. imutável: não se pode acrescentar, apagar ou • modificar valores. P owe r P oi ntP re se nta ti on. >>> 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
  • 49. Python com Baterias Incluídas Estrutura da Linguagem • Mapeamento - Hash Tables • P re se nta ti onP owe r P oi nt. • Dicionários • P owe r P oi ntP re se nta ti on. >>> d = {’chave’: ’valor ’,’nome’:’Aluno Teste’} >>> print d[ ’chave ’ ] # imprime ’ v a l o r ’ Jonh Edson Ribeiro de Carvalho
  • 50. 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
  • 51. 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
  • 52. Python com Baterias Incluídas Comunidade Brasileira •Site: Python Brasil •www.python.org.br •Email: • python-brasil@yahoogrupos.com.br •IRC: • irc.freenode.org, canal #python-br •Congresso: •www.pythonbrasil.org.br Jonh Edson Ribeiro de Carvalho
  • 53. Onde nos encontrar? • http://pythonrio.org • http://pythoncampus.org • http://dojorio.wordpress.com • http://horaextra.org Redes Sociais • Comunidade do Orkut - PythOnRio • Facebook - PythOnRio • Twitter - http://www.twitter.com/pythonrio • Flickr - http://www.flickr.com/pythonrio • Slideshare - http://www.slideshare.com/pythonrio • Vcasmo - http://www.vcasmo.com/user/pythonrio • Youtube
  • 54. Listas de Discussão • PythonBrasil-pythonbrasil@yahoogrupos.com.br • PythOnRio - pythonrio@yahoogrupos.com.br • DojoRio - dojorio@googlegroups.com • #HoraExtra - horaextra@googlegroups.com Rede Social – Software Livre Brasil • http://softwarelivre.org/pythonrio • http://softwarelivre.org/pythoncampus
  • 55. 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
  • 56. com baterias incluídas Msc. Jonh Edson Ribeiro de Carvalho email: visual@visual.pro.br site: www.visual.pro.br