Natã Venancio de Melo
        natanvm@dsc.ufcg.edu.br
Agenda:
    
        Histórico
    
        Características
    
        Plataformas Disponíveis
    
        Implementações
    
        Licença
    
        Módulos e Frameworks
    
        Ambientes de desenvolvimento 
        Integrado
                           
Agenda:
    
        Aplicações
    
        Aprenda Python
    
        Python não é uma maravilha
    
        Eventos
    
        Python no nosso curso
    
        Ranking
    
        Guido Van Rossum

                            
Histórico
    
        Guido Van Rossum – 1989
    
        Instituto de Pesquisa Nacional para 
        Matemática e Ciência da Computação (CWI)
    
        Sucessor da linguagem ABC
    
        Aumentar Produtividade do Programador
    
        Lançamento: 1991
        
            Versão 0.90:
             
                 Módulos de Modula­3
             
                 Classes, heranças, tratamento de 
                 exceções, funções 
 
             
                 Tipos de dados nativos (list, dict, 
                                  
                 str)
Histórico
    
        1994
        
            Fórum de discussão comp.lang.python
        
            Versão 1.0:
            Adicionado de ferramentas para 
             


            computação funcional (lambda, map, 
            filter e reduce)
    
        1995:
        
            Corporação para Iniciativas Nacionais de 
            Pesquisa ­ CNRI (Reston­Estados Unidos)
        
            Versão 1.2
        
            Versão 1.4:
             
                 Linguagem ganha a capacidade de passar 
                                  
                 parâmetro pelo nome
Histórico
             
               Ganha forma de encapsulamento
             
               Suporte Nativo a número complexos
        
            Versão 1.6
        
            Versão 1.61:
             Licença CNRI
             


           
             Compatível com GPL
    
        2000:
        
            BeOpen
        
            Versão 2.0:
             
                 Listcomprehension, sistema coletor de 
 
                 lixo             
             
                 Analisador Sintático SAX
Histórico
    
        2001:
        
            PythonLabs →  Digital Creations
        
            Python Software Foundation
        
            Versão 2.1
        
            Versão 2.2:
             
                 Unificação do tipos de Python (escritos 
                 em C) e classes (escritas em Python) em 
                 somente uma hierarquia
             
                 Modelo de Objetos Python 
                 consistentemente orientado a       
                 objeto
                                  
Histórico
    
        Versão 2.3:
         
          Pacote logging
    
        Versão 2.4
    
        Versão 2.6:
         
           Transição
         
           Bibliotecas para multiprocessamento, 
           JSON, E/S
         
           Nova forma de formatação de cadeias de 
           caracteres
    
        Python 3000:
         
             O print passa a ser uma função
 
         
             Mudança de todas as cadeias de 
                               
             caractere para UNICODE
Características
    
        Construções
        
            Estrutura de Seleção
             
               if, elif, else
        
            Estrutura de Repetição
             
               for, while
        
            Estrutura de classes
             
              class
        
            Contrução de Subrotina
             
              def
        
            Construção de escopo
             
                 with          
Características
    
        Tipos de dados
        
            Valores e Objetos possuem tipos bem 
            definidos
        
            str →  “Python”, 'pet­computacao'
        
            list → ['ufcg', 10, True]
        
            dict → {“oi”:”hello”, “gordo”:”big”}
        
            int →  13,  5555555555555555L
        
            float → 12.987765432
        
            complex → 3+4j
        
            bool → True, False
        
            set, frozenset → set([1,”diogo”, “diogo”, 
                               

            13, 13])
Características
    
        Permite definição de tipo de dados 
        próprios
    
        Métodos são definidos como funções 
        anexados à classe
    
        Exemplo de criação de classe:

             class Bag:
                 def __init__(self):
                     self.data = []
                 def add(self, x):
                     self.data.append(x)
                 def addtwice(self, x):
                     self.add(x)
                     self.add(x)


                                 
Características
    
        Palavras reservadas
        
            and, del, from, not, while, as, elif, 
            global, or, with, assert, else, if, pass, 
            yield, break, except, import, print, 
            class, exec, in, raise, continue, 
            finally, is, return, def, for, lambda, 
            try 
    
        Operadores
        
            Básicos:
             
              ==, >, <, <=, >= 
        
            Lógicos:
 
             
                 and, or, not    
Características
    
        Tipagem Dinâmica
    
        Interpretador Interativo
    
        Análise Léxica
    
        Analisador Sintático
    
        Indentação e Espaços em branco
    
        Compilador de Bytecode
        
            Pode ser compilada
        
            .pyc e .pyo
        
            Módulo dis da Bilioteca
        
            Grupos de Arquivos
                                  
Características
    
        Orientação a Objetos
        
            Classes, funções, números e módulos são 
            considerados objetos
        
            Polimorfismo, herança
        
            Não há encapsulamento
             
                 Atributo de uso privado da classe: 
                 _atributo
                  
                    Classe._atributo = outro_atributo
             
                 Atributo privado: __atributo
                  
                    Classe._A__atributo = outro_atributo

                                  
Características
    
        Tratamento de Exceções

          try:
             coordenador  =  Curso.getCoordenador()
          except AttributeError:
             print “BUG”




                                    
Características
    
        Ferramentas de diversas tarefas
    
        Aplicações
        
            Internet
        
            Interfaces Gráficas
        
            Conectar em Banco de dados relacionais




                               
Plataformas Disponíveis
    
        Diversas Plataformas
        
            Unix, Windows
        
            Compilador C → gerar Python a partir do 
            código fonte




                                
Implementações
    
        CPython e Stackless Python
    
        PyS60
    
        Jython, IronPython




                              
Licença
    
        Livre, aprovada pela OSI
    
        Compatível com GPL




                              
Módulos e Frameworks
    
        Biliotecas de Funções Especializadas
        
            Desenvolvimento Web
             
              Django, Pylons, TurboGears, CherryPy
        
            Processamento de Imagem
             
              Python Imaging Library, Matplotlib
        
            Computação Gráfica e Desenvolvimento de 
            Jogos
             
              Visual Python, PyOpenGL, Pygame
        
            Computação Distribuída
             
                 PYRO
                               
Módulos e Frameworks
    
        Computação Científica
         
             Numarray 
    
        Desenvolvimento de Software
         
          Twisted
    
        Banco de dados
         
             ZODB




                           
Interfaces Gráfica
    
        Tkinter : Módulo padrão para GUI no Python
    
        PyGT : Interface para a biblioteca GTK
    
        PyQT : Interface para a biblioteca QT
    
        WxPython : Interface para a biblioteca 
        wxWidgets
    
        Wax : Modo simples do wxPython




                             
Ambientes de 
        desenvolvimento integrado
    
        Boa Constructor → wxPython
    
        Eric Python IDE → Qt
    
        Geany → GTK2
    
        IDLE → Tkinter
    
        IronPython Studio → VS2008
    
        Komodo → Mozilla 
    
        PyDev (Eclipse)
    
        PythonCard 
    
        PyScripter 
 
    
        Wing IDE                
Aplicações
    
        Projetos que utilizam Python
        
            Servidor ZOPE
        
            Mnet
        
            YouTube
    
        Organizações que utilizam a linguagem
        
            Google
        
            Yahoo
        
            NASA
        
            Air Canada

                             
Aplicações
    
        Alguns Softwares
        
            Maya
        
            Softimage XSI
        
            TrueSpace
        
            Blender
        
            GIMP




                             
Aprenda Python
    
        http://associacao.pythonbrasil.org/
    
        http://www.python.org.br/wiki
    
        http://www.python.org/
    
        http://infomoz.net/modules/
    
        http://www.s60.com/life
    
        http://opensource.nokia.com/projects/pythonfors
    
        http://www.pygame.org/news.html
    
        http://www.youtube.com/watch?v=s­fKcZ5pKLE


                             
Python não é uma Maravilha
    
        Orientação a Objetos
        
            Não há encapsulamento
        
            Incofiável quanto à atributos privados
        
            Parâmetros não define tipo
        
            Um mesmo método pode retornar vários 
            tipos de objetos 




                               
Eventos

    PyconBrasil
    
        http://pyconbrasil.com.br/
    
        http://video.google.com/videosearch?
        q=pyconbrasil3#

    EuroPython
    
        http://www.europython.eu/

    EuroSciPy
    
        http://www.euroscipy.org/

    Outros
    
        http://wiki.python.org/moin/PythonEvents
                             
Python no nosso curso
    
        2008.1 
    
        Projetos




                     
Ranking




        
     
Guido Van Rossum




            
Referências
    
        http://www.python.org.br
    
        http://www.dmat.furg.br/~python/
    
        http://wapedia.mobi/pt/Python
    
        http://www.tiobe.com




                                
Comentários




          
print “FIM”




          

Linguagem Python

  • 1.
        Natã Venancio de Melo natanvm@dsc.ufcg.edu.br
  • 2.
    Agenda:  Histórico  Características  Plataformas Disponíveis  Implementações  Licença  Módulos e Frameworks  Ambientes de desenvolvimento  Integrado    
  • 3.
    Agenda:  Aplicações  Aprenda Python  Python não é uma maravilha  Eventos  Python no nosso curso  Ranking  Guido Van Rossum    
  • 4.
    Histórico  Guido Van Rossum – 1989  Instituto de Pesquisa Nacional para  Matemática e Ciência da Computação (CWI)  Sucessor da linguagem ABC  Aumentar Produtividade do Programador  Lançamento: 1991  Versão 0.90:  Módulos de Modula­3  Classes, heranças, tratamento de  exceções, funções     Tipos de dados nativos (list, dict,    str)
  • 5.
    Histórico  1994  Fórum de discussão comp.lang.python  Versão 1.0: Adicionado de ferramentas para   computação funcional (lambda, map,  filter e reduce)  1995:  Corporação para Iniciativas Nacionais de  Pesquisa ­ CNRI (Reston­Estados Unidos)  Versão 1.2  Versão 1.4:  Linguagem ganha a capacidade de passar      parâmetro pelo nome
  • 6.
    Histórico  Ganha forma de encapsulamento  Suporte Nativo a número complexos  Versão 1.6  Versão 1.61: Licença CNRI   Compatível com GPL  2000:  BeOpen  Versão 2.0:  Listcomprehension, sistema coletor de    lixo    Analisador Sintático SAX
  • 7.
    Histórico  2001:  PythonLabs →  Digital Creations  Python Software Foundation  Versão 2.1  Versão 2.2:  Unificação do tipos de Python (escritos  em C) e classes (escritas em Python) em  somente uma hierarquia  Modelo de Objetos Python  consistentemente orientado a        objeto    
  • 8.
    Histórico  Versão 2.3:  Pacote logging  Versão 2.4  Versão 2.6:  Transição  Bibliotecas para multiprocessamento,  JSON, E/S  Nova forma de formatação de cadeias de  caracteres  Python 3000:  O print passa a ser uma função    Mudança de todas as cadeias de    caractere para UNICODE
  • 9.
    Características  Construções  Estrutura de Seleção   if, elif, else  Estrutura de Repetição   for, while  Estrutura de classes  class  Contrução de Subrotina  def  Construção de escopo    with  
  • 10.
    Características  Tipos de dados  Valores e Objetos possuem tipos bem  definidos  str →  “Python”, 'pet­computacao'  list → ['ufcg', 10, True]  dict → {“oi”:”hello”, “gordo”:”big”}  int →  13,  5555555555555555L  float → 12.987765432  complex → 3+4j  bool → True, False    set, frozenset → set([1,”diogo”, “diogo”,    13, 13])
  • 11.
    Características  Permite definição de tipo de dados  próprios  Métodos são definidos como funções  anexados à classe  Exemplo de criação de classe: class Bag:     def __init__(self):         self.data = []     def add(self, x):         self.data.append(x)     def addtwice(self, x):         self.add(x)         self.add(x)    
  • 12.
    Características  Palavras reservadas  and, del, from, not, while, as, elif,  global, or, with, assert, else, if, pass,  yield, break, except, import, print,  class, exec, in, raise, continue,  finally, is, return, def, for, lambda,  try   Operadores  Básicos:  ==, >, <, <=, >=   Lógicos:    and, or, not  
  • 13.
    Características  Tipagem Dinâmica  Interpretador Interativo  Análise Léxica  Analisador Sintático  Indentação e Espaços em branco  Compilador de Bytecode  Pode ser compilada  .pyc e .pyo  Módulo dis da Bilioteca  Grupos de Arquivos    
  • 14.
    Características  Orientação a Objetos  Classes, funções, números e módulos são  considerados objetos  Polimorfismo, herança  Não há encapsulamento  Atributo de uso privado da classe:  _atributo  Classe._atributo = outro_atributo  Atributo privado: __atributo  Classe._A__atributo = outro_atributo    
  • 15.
    Características  Tratamento de Exceções try: coordenador  =  Curso.getCoordenador() except AttributeError: print “BUG”    
  • 16.
    Características  Ferramentas de diversas tarefas  Aplicações  Internet  Interfaces Gráficas  Conectar em Banco de dados relacionais    
  • 17.
    Plataformas Disponíveis  Diversas Plataformas  Unix, Windows  Compilador C → gerar Python a partir do  código fonte    
  • 18.
    Implementações  CPython e Stackless Python  PyS60  Jython, IronPython    
  • 19.
    Licença  Livre, aprovada pela OSI  Compatível com GPL    
  • 20.
    Módulos e Frameworks  Biliotecas de Funções Especializadas  Desenvolvimento Web  Django, Pylons, TurboGears, CherryPy  Processamento de Imagem  Python Imaging Library, Matplotlib  Computação Gráfica e Desenvolvimento de  Jogos  Visual Python, PyOpenGL, Pygame  Computação Distribuída  PYRO    
  • 21.
    Módulos e Frameworks  Computação Científica  Numarray   Desenvolvimento de Software  Twisted  Banco de dados  ZODB    
  • 22.
    Interfaces Gráfica  Tkinter : Módulo padrão para GUI no Python  PyGT : Interface para a biblioteca GTK  PyQT : Interface para a biblioteca QT  WxPython : Interface para a biblioteca  wxWidgets  Wax : Modo simples do wxPython    
  • 23.
    Ambientes de  desenvolvimento integrado  Boa Constructor → wxPython  Eric Python IDE → Qt  Geany → GTK2  IDLE → Tkinter  IronPython Studio → VS2008  Komodo → Mozilla   PyDev (Eclipse)  PythonCard   PyScripter     Wing IDE  
  • 24.
    Aplicações  Projetos que utilizam Python  Servidor ZOPE  Mnet  YouTube  Organizações que utilizam a linguagem  Google  Yahoo  NASA  Air Canada    
  • 25.
    Aplicações  Alguns Softwares  Maya  Softimage XSI  TrueSpace  Blender  GIMP    
  • 26.
    Aprenda Python  http://associacao.pythonbrasil.org/  http://www.python.org.br/wiki  http://www.python.org/  http://infomoz.net/modules/  http://www.s60.com/life  http://opensource.nokia.com/projects/pythonfors  http://www.pygame.org/news.html  http://www.youtube.com/watch?v=s­fKcZ5pKLE    
  • 27.
    Python não é uma Maravilha  Orientação a Objetos  Não há encapsulamento  Incofiável quanto à atributos privados  Parâmetros não define tipo  Um mesmo método pode retornar vários  tipos de objetos     
  • 28.
    Eventos  PyconBrasil  http://pyconbrasil.com.br/  http://video.google.com/videosearch? q=pyconbrasil3#  EuroPython  http://www.europython.eu/  EuroSciPy  http://www.euroscipy.org/  Outros    http://wiki.python.org/moin/PythonEvents  
  • 29.
    Python no nosso curso  2008.1   Projetos    
  • 30.
  • 31.
       
  • 32.
  • 33.
    Referências  http://www.python.org.br  http://www.dmat.furg.br/~python/  http://wapedia.mobi/pt/Python  http://www.tiobe.com    
  • 34.
  • 35.