Richardson Lima
                           securityfusion@gmail.com
                        richardsonlima@foxylinux.com
                      http://richardsonlima.foxylinux.com

Por Richardson Lima          richardsonlima@foxylinux.com   1
Atenção


    • O prazer de construir um programa em
        Python pode causar dependência
                   psicológica.

                      • Brincadeirinhaaaa !!!


Por Richardson Lima       richardsonlima@foxylinux.com   2
Esboço
• O que é Python?

• Por que usar Python?

• Python, em comparação com outras linguagens.




Por Richardson Lima   richardsonlima@foxylinux.com   3
O que é Python?




Por Richardson Lima   richardsonlima@foxylinux.com   4
Porquê Python




• Seu nome é uma homenagem ao grupo
  humorístico inglês Monty Python,adorado
  por geeks de todo o mundo.
Por Richardson Lima   richardsonlima@foxylinux.com   5
O que é Python ?
 - Prototipagem rápida de linguagem OO
 - Não é apenas uma linguagem de scripting
 - Não apenas um outro Perl
 - Extensível (incremento de novos módulos)
    C / C ++ / Fortran / qualquer coisa =)
    Java (através Jython)
 - Possível incorporar em aplicações


Por Richardson Lima      richardsonlima@foxylinux.com   6
Propriedades de alto nível
  - Extremamente portátil.
  - Unix, Windows, Mac, BeOS, Win / CE,
  DOS, OS / 2, Amiga, VMS, Cray, ...
  - Compilado para código interpretador byte code.
  - Compilação é implícita e automática.
  - Gerenciamento automático de memória.




Por Richardson Lima   richardsonlima@foxylinux.com   7
O que é Python
  - Livre (open source)
       Direitos autorais, mas não uso restrito
  - Apoio da comunidade de usuários
  - Design elegante, fácil de aprender
       Lê como "pseudo-código"
       Adequada como primeira linguagem



Por Richardson Lima     richardsonlima@foxylinux.com   8
Interfaces para o ...
- COM, DCOM, ODBC
- Bases de dados comerciais
- Java (Jython)
- Muitas bibliotecas GUI
         • Plataforma independente
            - Tk, wxWindows, GTK
         • Plataforma específica
            - MFC, MacOS, X11/Motif



Por Richardson Lima   richardsonlima@foxylinux.com   9
Propriedades da linguagem
 - Tudo é um objeto
 - Módulos, classes, funções
 - Manipulação de exceção
 - Digitação dinâmica, polimorfismo
  Static scoping
 - Operador de sobrecarga (overloading)
 - Indentação para bloquear estrutura


Por Richardson Lima   richardsonlima@foxylinux.com   10
Tipos de dados de alto nível
 - Números: int, long, float, complex
 - Strings: imutável
 - Listas e dicionários: contentores
 - Outros tipos de e.x. dados binários,
  expressões regulares, introspecção




Por Richardson Lima   richardsonlima@foxylinux.com   11
Por que usar
                       Python?


Por Richardson Lima     richardsonlima@foxylinux.com   12
Produtividade!
 - Tempo de desenvolvimento reduzido,
       > A codificação é mais rápida que C, C + +,
   Java.
- Manutenção de código
    > Código é extremamente legível
- Menor tempo de aprendizado
    > Linguagem é muito fácil de aprender



Por Richardson Lima     richardsonlima@foxylinux.com   13
Em que pode utilizado?
   - Prototipagem rápida
   - Web scripting (HTML, HTTP, ...)
   - Programação ad hoc,aplicações científicas
   - Processamento de XML (XML-RPC and SOAP )
   - Base de dados (Oracle, MySQL, PostgreSQL, ODBC, ...)
   - Aplicações GUI



Por Richardson Lima   richardsonlima@foxylinux.com    14
Quem está usando?
  - LLNL, Fermilab
  - Grupo CMU no Alice (gráficos 3D)
  - ObjectDomain (extensão de ferramenta UML)
  - Infoseek (linguagem scripting)
  - Industrial Light & Magic (tudo)
  - Yahoo! (CGI no Yahoo! Mail)
  - Digital Creations (Zope)
  - RedHat (Ferramentas de instalação)



Por Richardson Lima   richardsonlima@foxylinux.com   15
Criador
• Criada em 1989 pelo holandês
  Guido van Rossum no Centrum
  voor Wiskunde en Informatica (CWI),
  em Amsterdã,Holanda.

• O projeto de sistema operacional
  distribuído Amoeba precisava de uma
  linguagem de script. Nasce o Python.
 Por Richardson Lima   richardsonlima@foxylinux.com   16
Python no Brasil
• Embratel: monitoramento das interfaces de backbone e
clientes de internet, também existem scripts de uso interno.
• CPqD: monitoramento de centrais telefônicas.
• GPr Sistemas: Desenvolvimento de aplicações sob encomenda,
    sistemas como monitoramento de transporte terrestre via satélite são as
    soluções já feitas.

• Outras que utilizam o Python para sistemas Web, como Varig,
  Serpro,Interlegis, ...

• Os sistemas web de gestão de conteúdo usando o trio
  Python/Zope/Plone vem crescendo a cada dia, principalmente em
  grandes empresas e em órgãos do governo.



  Por Richardson Lima      richardsonlima@foxylinux.com                17
Python no mundo
• Apesar da associação cômica, Python
  vem sendo usada em projetos sérios por
  entidades como Google,Yahoo, NASA,
  InfoSeek, MCI Worldcom, IBM e Hiway, a
  maior empresa de hospedagem de web-
  sites do mundo.



Por Richardson Lima   richardsonlima@foxylinux.com   18
Comunidade Mundial



• URL: http://python.org/
• Mail: python-list@python.org, python-help@python.org
• IRC: irc.freenode.org, canal #python




 Por Richardson Lima   richardsonlima@foxylinux.com      19
Comunidade Brasileira


• URL: http://www.pythonbrasil.com.br/
• Mail: python-brasil@yahoogrupos.com.br
• IRC: irc.freenode.org, canal #python-br




Por Richardson Lima   richardsonlima@foxylinux.com   20
Python
 COMPARAÇÃO COM
OUTRAS LINGUAGENS


Por Richardson Lima   richardsonlima@foxylinux.com   21
Python vs. Perl
 - Mais fácil de aprender
 - Boa para o uso ocasional
 - Código mais legível
 - Manutenção do código
 - Menos "mágicas ", efeitos colaterais
 - Mais "segurança", garantias
 - Melhor integração Java



Por Richardson Lima      richardsonlima@foxylinux.com   22
Python vs. Tcl
 - Orientação a objeto
 - Sintaxe mais diferenciada
 - Muito mais rápido (mesmo que Tcl 8.x)
 - Menos necessidade de extensões C
 - Se usar extensões C não redefini a sintaxe
    > extensão, portanto, menos conflitos
 - Melhor integração Java
 - Python usa Tk como GUI std


Por Richardson Lima     richardsonlima@foxylinux.com   23
Python vs. Java
 - Código 5-10 vezes mais conciso
 - Digitação dinâmica
 - Desenvolvimento muito rápido
 - Não tens que compilar
 - Menos tempo de digitação
 - Sim, vai mais devagar !!!
 - Mas o desenvolvimento é muito mais rápido!
 - Utilize Python com Java: Jython!


Por Richardson Lima      richardsonlima@foxylinux.com   24
Python em web-applications
• Python é tambem a base do Zope, a mais
  sofisticada plataforma para construção de
  web-applications disponível hoje como
  open-source.




Por Richardson Lima   richardsonlima@foxylinux.com   25
Recursos
• Apesar de sua sintaxe simples e clara,
  Python oferece recursos disponíveis
  também em linguagens mais complicadas
  como Java e C++.




Por Richardson Lima   richardsonlima@foxylinux.com   26
Detalhes dos recursos
• Programação orientada a objetos

• Um moderno mecanismo para o tratamento de erros

• Possibilidade de executar o mesmo programa sem modificações em
  várias plataformas

• Recursos avançados de manipulação de textos, listas e outras estruturas
  de dados

• Módulos, uma forma inteligente de acessar e organizar código a ser
  reutilizado

  Por Richardson Lima     richardsonlima@foxylinux.com                 27
Orientação a Objeto
          • Já vi muita gente dizer que uma
       linguagem é orientada a objetos porque
           você pode criar interfaces gráficas.

                      • Não tem nada a ver.




Por Richardson Lima       richardsonlima@foxylinux.com   28
Detalhe
• Isso não significa, é claro, que não se
  pode criar aplicações com interfaces
  gráficas com Python ou com qualquer
  outra linguagem orientada ou não a
  objetos.




Por Richardson Lima   richardsonlima@foxylinux.com   29
Python OO


• Python é uma linguagem orientada a objetos,
  e nela quase tudo é um objeto, números,
  strings,funções, classes, instancias, métodos,
  ...



 Por Richardson Lima   richardsonlima@foxylinux.com   30
Python Destrói !!!
• Python nos oferece uma sintaxe simples
  mas ao mesmo tempo suporta a maior
  parte das características importantes de
  linguagens modernas e amplamente
  utilizadas como Java, C++, Perl e
  VBScript.



Por Richardson Lima       richardsonlima@foxylinux.com   31
Seu primeiro código Python
• >>> print “Oi, Mundo !"
• Oi, Mundo !

• Em JAVA !!!
• Class Oi Mundo {
•    public static void main (String[] args) {
•       System.out.println(“ Oi, Mundo”) ;
•    }
• }

Por Richardson Lima   richardsonlima@foxylinux.com   32
Brincando com Python !
•   #!/usr/bin/env python
•   import os
•   if os.path.isdir("/tmp"):
•   print "/tmp é um diretório"
•   else:
•   print "/tmp não é um diretório"


Por Richardson Lima   richardsonlima@foxylinux.com   33
The central philosophy of Python



•                     In [1]: import this




Por Richardson Lima      richardsonlima@foxylinux.com   34
Contato

             • Richardson Lima ( hachid )

• Email: richardsonlima@foxylinux.com
• Website: http://richardsonlima.foxylinux.com
• aMSN: richardson@hachid.com
•     Obtenha esta palestra em:
    http://www.foxylinux.com/python/PythonPalestra-RichardsonLima-branco.pdf




Por Richardson Lima         richardsonlima@foxylinux.com                   35

Python para iniciantes

  • 1.
    Richardson Lima securityfusion@gmail.com richardsonlima@foxylinux.com http://richardsonlima.foxylinux.com Por Richardson Lima richardsonlima@foxylinux.com 1
  • 2.
    Atenção • O prazer de construir um programa em Python pode causar dependência psicológica. • Brincadeirinhaaaa !!! Por Richardson Lima richardsonlima@foxylinux.com 2
  • 3.
    Esboço • O queé Python? • Por que usar Python? • Python, em comparação com outras linguagens. Por Richardson Lima richardsonlima@foxylinux.com 3
  • 4.
    O que éPython? Por Richardson Lima richardsonlima@foxylinux.com 4
  • 5.
    Porquê Python • Seunome é uma homenagem ao grupo humorístico inglês Monty Python,adorado por geeks de todo o mundo. Por Richardson Lima richardsonlima@foxylinux.com 5
  • 6.
    O que éPython ? - Prototipagem rápida de linguagem OO - Não é apenas uma linguagem de scripting - Não apenas um outro Perl - Extensível (incremento de novos módulos) C / C ++ / Fortran / qualquer coisa =) Java (através Jython) - Possível incorporar em aplicações Por Richardson Lima richardsonlima@foxylinux.com 6
  • 7.
    Propriedades de altonível - Extremamente portátil. - Unix, Windows, Mac, BeOS, Win / CE, DOS, OS / 2, Amiga, VMS, Cray, ... - Compilado para código interpretador byte code. - Compilação é implícita e automática. - Gerenciamento automático de memória. Por Richardson Lima richardsonlima@foxylinux.com 7
  • 8.
    O que éPython - Livre (open source) Direitos autorais, mas não uso restrito - Apoio da comunidade de usuários - Design elegante, fácil de aprender Lê como "pseudo-código" Adequada como primeira linguagem Por Richardson Lima richardsonlima@foxylinux.com 8
  • 9.
    Interfaces para o... - COM, DCOM, ODBC - Bases de dados comerciais - Java (Jython) - Muitas bibliotecas GUI • Plataforma independente - Tk, wxWindows, GTK • Plataforma específica - MFC, MacOS, X11/Motif Por Richardson Lima richardsonlima@foxylinux.com 9
  • 10.
    Propriedades da linguagem - Tudo é um objeto - Módulos, classes, funções - Manipulação de exceção - Digitação dinâmica, polimorfismo Static scoping - Operador de sobrecarga (overloading) - Indentação para bloquear estrutura Por Richardson Lima richardsonlima@foxylinux.com 10
  • 11.
    Tipos de dadosde alto nível - Números: int, long, float, complex - Strings: imutável - Listas e dicionários: contentores - Outros tipos de e.x. dados binários, expressões regulares, introspecção Por Richardson Lima richardsonlima@foxylinux.com 11
  • 12.
    Por que usar Python? Por Richardson Lima richardsonlima@foxylinux.com 12
  • 13.
    Produtividade! - Tempode desenvolvimento reduzido, > A codificação é mais rápida que C, C + +, Java. - Manutenção de código > Código é extremamente legível - Menor tempo de aprendizado > Linguagem é muito fácil de aprender Por Richardson Lima richardsonlima@foxylinux.com 13
  • 14.
    Em que podeutilizado? - Prototipagem rápida - Web scripting (HTML, HTTP, ...) - Programação ad hoc,aplicações científicas - Processamento de XML (XML-RPC and SOAP ) - Base de dados (Oracle, MySQL, PostgreSQL, ODBC, ...) - Aplicações GUI Por Richardson Lima richardsonlima@foxylinux.com 14
  • 15.
    Quem está usando? - LLNL, Fermilab - Grupo CMU no Alice (gráficos 3D) - ObjectDomain (extensão de ferramenta UML) - Infoseek (linguagem scripting) - Industrial Light & Magic (tudo) - Yahoo! (CGI no Yahoo! Mail) - Digital Creations (Zope) - RedHat (Ferramentas de instalação) Por Richardson Lima richardsonlima@foxylinux.com 15
  • 16.
    Criador • Criada em1989 pelo holandês Guido van Rossum no Centrum voor Wiskunde en Informatica (CWI), em Amsterdã,Holanda. • O projeto de sistema operacional distribuído Amoeba precisava de uma linguagem de script. Nasce o Python. Por Richardson Lima richardsonlima@foxylinux.com 16
  • 17.
    Python no Brasil •Embratel: monitoramento das interfaces de backbone e clientes de internet, também existem scripts de uso interno. • CPqD: monitoramento de centrais telefônicas. • GPr Sistemas: Desenvolvimento de aplicações sob encomenda, sistemas como monitoramento de transporte terrestre via satélite são as soluções já feitas. • Outras que utilizam o Python para sistemas Web, como Varig, Serpro,Interlegis, ... • Os sistemas web de gestão de conteúdo usando o trio Python/Zope/Plone vem crescendo a cada dia, principalmente em grandes empresas e em órgãos do governo. Por Richardson Lima richardsonlima@foxylinux.com 17
  • 18.
    Python no mundo •Apesar da associação cômica, Python vem sendo usada em projetos sérios por entidades como Google,Yahoo, NASA, InfoSeek, MCI Worldcom, IBM e Hiway, a maior empresa de hospedagem de web- sites do mundo. Por Richardson Lima richardsonlima@foxylinux.com 18
  • 19.
    Comunidade Mundial • URL:http://python.org/ • Mail: python-list@python.org, python-help@python.org • IRC: irc.freenode.org, canal #python Por Richardson Lima richardsonlima@foxylinux.com 19
  • 20.
    Comunidade Brasileira • URL:http://www.pythonbrasil.com.br/ • Mail: python-brasil@yahoogrupos.com.br • IRC: irc.freenode.org, canal #python-br Por Richardson Lima richardsonlima@foxylinux.com 20
  • 21.
    Python COMPARAÇÃO COM OUTRASLINGUAGENS Por Richardson Lima richardsonlima@foxylinux.com 21
  • 22.
    Python vs. Perl - Mais fácil de aprender - Boa para o uso ocasional - Código mais legível - Manutenção do código - Menos "mágicas ", efeitos colaterais - Mais "segurança", garantias - Melhor integração Java Por Richardson Lima richardsonlima@foxylinux.com 22
  • 23.
    Python vs. Tcl - Orientação a objeto - Sintaxe mais diferenciada - Muito mais rápido (mesmo que Tcl 8.x) - Menos necessidade de extensões C - Se usar extensões C não redefini a sintaxe > extensão, portanto, menos conflitos - Melhor integração Java - Python usa Tk como GUI std Por Richardson Lima richardsonlima@foxylinux.com 23
  • 24.
    Python vs. Java - Código 5-10 vezes mais conciso - Digitação dinâmica - Desenvolvimento muito rápido - Não tens que compilar - Menos tempo de digitação - Sim, vai mais devagar !!! - Mas o desenvolvimento é muito mais rápido! - Utilize Python com Java: Jython! Por Richardson Lima richardsonlima@foxylinux.com 24
  • 25.
    Python em web-applications •Python é tambem a base do Zope, a mais sofisticada plataforma para construção de web-applications disponível hoje como open-source. Por Richardson Lima richardsonlima@foxylinux.com 25
  • 26.
    Recursos • Apesar desua sintaxe simples e clara, Python oferece recursos disponíveis também em linguagens mais complicadas como Java e C++. Por Richardson Lima richardsonlima@foxylinux.com 26
  • 27.
    Detalhes dos recursos •Programação orientada a objetos • Um moderno mecanismo para o tratamento de erros • Possibilidade de executar o mesmo programa sem modificações em várias plataformas • Recursos avançados de manipulação de textos, listas e outras estruturas de dados • Módulos, uma forma inteligente de acessar e organizar código a ser reutilizado Por Richardson Lima richardsonlima@foxylinux.com 27
  • 28.
    Orientação a Objeto • Já vi muita gente dizer que uma linguagem é orientada a objetos porque você pode criar interfaces gráficas. • Não tem nada a ver. Por Richardson Lima richardsonlima@foxylinux.com 28
  • 29.
    Detalhe • Isso nãosignifica, é claro, que não se pode criar aplicações com interfaces gráficas com Python ou com qualquer outra linguagem orientada ou não a objetos. Por Richardson Lima richardsonlima@foxylinux.com 29
  • 30.
    Python OO • Pythoné uma linguagem orientada a objetos, e nela quase tudo é um objeto, números, strings,funções, classes, instancias, métodos, ... Por Richardson Lima richardsonlima@foxylinux.com 30
  • 31.
    Python Destrói !!! •Python nos oferece uma sintaxe simples mas ao mesmo tempo suporta a maior parte das características importantes de linguagens modernas e amplamente utilizadas como Java, C++, Perl e VBScript. Por Richardson Lima richardsonlima@foxylinux.com 31
  • 32.
    Seu primeiro códigoPython • >>> print “Oi, Mundo !" • Oi, Mundo ! • Em JAVA !!! • Class Oi Mundo { • public static void main (String[] args) { • System.out.println(“ Oi, Mundo”) ; • } • } Por Richardson Lima richardsonlima@foxylinux.com 32
  • 33.
    Brincando com Python! • #!/usr/bin/env python • import os • if os.path.isdir("/tmp"): • print "/tmp é um diretório" • else: • print "/tmp não é um diretório" Por Richardson Lima richardsonlima@foxylinux.com 33
  • 34.
    The central philosophyof Python • In [1]: import this Por Richardson Lima richardsonlima@foxylinux.com 34
  • 35.
    Contato • Richardson Lima ( hachid ) • Email: richardsonlima@foxylinux.com • Website: http://richardsonlima.foxylinux.com • aMSN: richardson@hachid.com • Obtenha esta palestra em: http://www.foxylinux.com/python/PythonPalestra-RichardsonLima-branco.pdf Por Richardson Lima richardsonlima@foxylinux.com 35