SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
          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”




          

Mais conteúdo relacionado

Mais procurados

Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVACristiano Almeida
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNsFabio Spanhol
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Unidade iii aula 02 - introdução ao java
Unidade iii   aula 02 - introdução ao javaUnidade iii   aula 02 - introdução ao java
Unidade iii aula 02 - introdução ao javaNécio de Lima Veras
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5Fabio Spanhol
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4Fabio Spanhol
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 

Mais procurados (19)

Pged 03
Pged 03Pged 03
Pged 03
 
Object pascal
Object pascalObject pascal
Object pascal
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Aula05
Aula05Aula05
Aula05
 
Java 07
Java 07Java 07
Java 07
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNs
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Unidade iii aula 02 - introdução ao java
Unidade iii   aula 02 - introdução ao javaUnidade iii   aula 02 - introdução ao java
Unidade iii aula 02 - introdução ao java
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 

Semelhante a Linguagem Python

TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...Rogério Moraes de Carvalho
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
Ferramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e AcompanhamentoFerramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e AcompanhamentoRodrigo Azevedo
 
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
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2Fabio Spanhol
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfProfIvanSaboia
 
Linguagem Boo: A wrist friendly language for CLI
Linguagem Boo: A wrist friendly language for CLILinguagem Boo: A wrist friendly language for CLI
Linguagem Boo: A wrist friendly language for CLIAlessandro Binhara
 

Semelhante a Linguagem Python (20)

TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
 
TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#
 
Ferramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e AcompanhamentoFerramentas de Planejamento e Acompanhamento
Ferramentas de Planejamento e Acompanhamento
 
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
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Python
PythonPython
Python
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Tutorial Python - 1
Tutorial Python - 1Tutorial Python - 1
Tutorial Python - 1
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
 
Aula python
Aula pythonAula python
Aula python
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
Linguagem Boo: A wrist friendly language for CLI
Linguagem Boo: A wrist friendly language for CLILinguagem Boo: A wrist friendly language for CLI
Linguagem Boo: A wrist friendly language for CLI
 

Mais de Natã Melo

Sistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaSistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaNatã Melo
 
[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google AnalyticsNatã Melo
 
[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google MapsNatã Melo
 
Minicurso grails
Minicurso grailsMinicurso grails
Minicurso grailsNatã Melo
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading Natã Melo
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em PrologNatã Melo
 
Motores de busca em redes sociais
Motores de busca em redes sociaisMotores de busca em redes sociais
Motores de busca em redes sociaisNatã Melo
 
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...Natã Melo
 
Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Natã Melo
 
Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Natã Melo
 
Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Natã Melo
 
Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Natã Melo
 
Copas do Mundo de Futebol
Copas do Mundo de FutebolCopas do Mundo de Futebol
Copas do Mundo de FutebolNatã Melo
 
Sistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisSistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisNatã Melo
 
Sistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSSistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSNatã Melo
 
Regresão Múltipla
Regresão MúltiplaRegresão Múltipla
Regresão MúltiplaNatã Melo
 
Educação a Distância
Educação a DistânciaEducação a Distância
Educação a DistânciaNatã Melo
 
Teste Dirigido por Modelos
Teste Dirigido por ModelosTeste Dirigido por Modelos
Teste Dirigido por ModelosNatã Melo
 

Mais de Natã Melo (20)

Sistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - KafkaSistemas Distribuídos - Publish-Subscribe - Kafka
Sistemas Distribuídos - Publish-Subscribe - Kafka
 
[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics[Android] Publish on Google Play & Google Analytics
[Android] Publish on Google Play & Google Analytics
 
[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps[Android] Google Service Play & Google Maps
[Android] Google Service Play & Google Maps
 
Minicurso grails
Minicurso grailsMinicurso grails
Minicurso grails
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading
 
Listas em Prolog
Listas em PrologListas em Prolog
Listas em Prolog
 
Motores de busca em redes sociais
Motores de busca em redes sociaisMotores de busca em redes sociais
Motores de busca em redes sociais
 
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
MATRACA: Ferramenta open source para auxílio a deficientes visuais no uso do ...
 
Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4Biografia de Bill Gates - Parte 4
Biografia de Bill Gates - Parte 4
 
Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3Biografia de Bill Gates - Parte 3
Biografia de Bill Gates - Parte 3
 
Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2Biografia de Bill Gates - Parte 2
Biografia de Bill Gates - Parte 2
 
Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1Biografia de Bill Gates - Parte 1
Biografia de Bill Gates - Parte 1
 
Copas do Mundo de Futebol
Copas do Mundo de FutebolCopas do Mundo de Futebol
Copas do Mundo de Futebol
 
Sistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes SociaisSistemas Recomendação em Redes Sociais
Sistemas Recomendação em Redes Sociais
 
Sistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINSSistema de Recomendação - Amigos DINS
Sistema de Recomendação - Amigos DINS
 
Terremotos
TerremotosTerremotos
Terremotos
 
Regresão Múltipla
Regresão MúltiplaRegresão Múltipla
Regresão Múltipla
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
 
Educação a Distância
Educação a DistânciaEducação a Distância
Educação a Distância
 
Teste Dirigido por Modelos
Teste Dirigido por ModelosTeste Dirigido por Modelos
Teste Dirigido por Modelos
 

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    
  • 31.    
  • 33. Referências  http://www.python.org.br  http://www.dmat.furg.br/~python/  http://wapedia.mobi/pt/Python  http://www.tiobe.com