SlideShare una empresa de Scribd logo
1 de 66
Descargar para leer sin conexión
Python para Devs
    Evaldo Junior


       (1.0 beta)


     05/05/2012
Licenciamento desta apresentação
             Creative Commons




                    BY-NC-SA
     Compartilhe - Mantenha a licença - Não comercial
Evaldo Junior - InFog
•   Processamento de dados - Fatec
•   MBA Gestão Estratégica de TI - Unimonte
•   Professor universitário - Unimonte
•   Empreendedor - CaSoft
•   GNU/Linux - 7 anos
•   Desenvolvedor - 5 anos
Python
Python
•   Pronuncia-se "Paiton"

•   Não é "pitón"
•   Não é "faiton"

•   Sem ligação com cobras!
•   Monty Python!
Por que Python?
Qualidade de
Software
Qualidade de
Software
               Produtividade
Qualidade de
Software
                Produtividade




Portabilidade
Qualidade de
Software
                Produtividade




Portabilidade
                  Inúmeras
                  bibliotecas
Qualidade de
Software
                  Produtividade




Portabilidade
                    Inúmeras
                    bibliotecas




 Integração com
 outras
 linguagens
Qualidade de
Software
                           Produtividade




Portabilidade
                             Inúmeras
                             bibliotecas




 Integração com
 outras
 linguagens

                  Livre!
Qualidade de
Software
                                       Produtividade




Portabilidade
                                         Inúmeras
                                         bibliotecas




 Integração com
 outras
 linguagens
                           Diversão!
                  Livre!
Um pouco de história...
•   Guido van Rossum
•   1989 - 1991
•   Foco em produtividade
•   1994 - Funcional
    o   lambda
•   2.0 - list compreension
    o   haskell
•   3.0 - grandes mudanças
A linguagem Python



      Poderosa!
A linguagem Python
Multiparadigma




                 Poderosa!
A linguagem Python
Multiparadigma          Multifuncional




                 Poderosa!
A linguagem Python
Multiparadigma            Multifuncional




                 Poderosa!

        Multiplataforma
A linguagem Python
Multiparadigma            Multifuncional




                 Poderosa!
                             Fácil de aprender
        Multiplataforma
A linguagem Python

Multiparadigma            Multifuncional




                 Poderosa...
                     e
 Multiplataforma   rápida!     Fácil de aprender
A linguagem Python
•   Poderosa... E rápida!




       Baterias incluídas
A linguagem Python
•   Poderosa... E rápida!
      WEB




       Baterias incluídas
A linguagem Python
•   Poderosa... E rápida!
                       Desktop
      WEB




       Baterias incluídas
A linguagem Python
•   Poderosa... E rápida!
                                 Database
                       Desktop
      WEB




       Baterias incluídas
A linguagem Python
•   Poderosa... E rápida!
                                  Database
                        Desktop
      WEB




         Baterias incluídas
    Científica
A linguagem Python
•   Poderosa... E rápida!
                                  Database
                        Desktop
       WEB




         Baterias incluídas
     Científica

                    Network
A linguagem Python
•   Poderosa... E rápida!
                                  Database
                        Desktop
       WEB




         Baterias incluídas
     Científica
                                    Games
                    Network
A linguagem Python
•   Poderosa... E rápida!
•   Baterias incluídas


         Meta classes,
         decorators
         Duck typing
Talking is cheap, show me the code!
Duck Typing
Blocos são
i[n]dentados!
A linguagem Python
•   Poderosa... E rápida!
•   Baterias incluídas
•   Meta classes, decorators, Duck typing



       Escreva rápido!
Feed RSS
Resultado
A linguagem Python
•   Poderosa... E rápida!
•   Baterias incluídas
•   Meta classes, decorators, Duck typing
•   Escreva rápido!

       Interpretador
       interativo!
Interpretador interativo
Tipagem dinâmica, não fraca!
•   Não existe declaração de tipos




     Mas os tipos
     existem!
exemplo...

2+2=4
'2' + '2' = '22'
2 + '2' = TypeError
Tipagem dinâmica, não fraca!
•   Não existe declaração de tipos
•   Sem conversão automática de tipos

4 * 'spam'
'spamspamspamspam'
Ótimo tratamento de erros
Parâmetros nomeados
Decorators
•   Especifica uma maneira de gerir funções e
    classes

•   Organização

•   Centralização
Decorators
Decorators
Decorators - Django
Namespaces
•   Baseados em arquivos ou módulos
•   Use apenas se necessário
•   Ótima forma de organização e
    modularização
Namespaces




fun1           fun2
OOP
Herança multipla




                   OOP
Classes abstratas

Herança multipla




                   OOP
Classes abstratas

Herança multipla
                                 Sem sobrecarga de métodos




                   OOP
Classes abstratas

Herança multipla
                                    Sem sobrecarga de métodos




                      OOP
  Não existem tipos
  primitivos
Classes abstratas

Herança multipla
                                    Sem sobrecarga de métodos




                      OOP
  Não existem tipos
  primitivos                      TUDO é objeto
OOP!
5.45.__int__()

5 (parte inteira do número)
OOP: self
•   Todos os métodos, de quaisquer métodos,
    recebem o self
•   self é uma referência do objeto instanciado.
•   self é sempre o primeiro parâmetro, e é
    automático.
OOP: self
Convenções para OOP
•   Todos herdam de "object"
•   Contrutores se chamam __new__
    o   Nunca vi um construtor...
•   Inicializadores de chamam __init__
    o   Esses sim, tem aos montes por aí
    o   Na verdade o __init__ é o que as outras linguagens
        usam como "construtor"
•   __init__ recebe uma instância pronta, para
    incializar os atributos.
•   __new__ é usada raramente, mais para
    metaprogramação.
Visibilidades
•   Não existe operador de visibilidade!

•   Nada de public

•   Nada de protected

•   Nada de private
Visibilidades, como faz?
•   public = sem prefixos

•   protected = prefixo "_"

•   private = prefixo "__"

    o   two underlines
    o   two under
    o   thunder
Visibilidades, funciona?
Um grande acordo entre cavalheiros.


Coisas ruins acontecem com
quem não respeita o padrão.
O que fazer com tudo isso?
Quem usa Python?
Mais de um milhão de desenvolvedores!
Mais informações
•   http://python.org
•   http://python.org.br

•   http://python.org/doc

•   Learning Python - Mark Lutz

•   Python para Desenvolvedores
    o   Luiz Eduardo Borges
Dúvidas?
Python para Devs título
Python para Devs título

Más contenido relacionado

La actualidad más candente

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
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em ElixirAdolfo Neto
 
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
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Pythonantonio sérgio nogueira
 
Senid2016 - Oficina de LibreLogo - Prof. Gilvan Vilarm
Senid2016 - Oficina de LibreLogo - Prof. Gilvan VilarmSenid2016 - Oficina de LibreLogo - Prof. Gilvan Vilarm
Senid2016 - Oficina de LibreLogo - Prof. Gilvan VilarmGilvan Vilarim
 
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
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCETiago Freire
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em ElixirAdolfo Neto
 
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
 
Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e ExpressivoRodrigo Martins
 

La actualidad más candente (16)

Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em Elixir
 
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
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Python
 
Phyton
PhytonPhyton
Phyton
 
Senid2016 - Oficina de LibreLogo - Prof. Gilvan Vilarm
Senid2016 - Oficina de LibreLogo - Prof. Gilvan VilarmSenid2016 - Oficina de LibreLogo - Prof. Gilvan Vilarm
Senid2016 - Oficina de LibreLogo - Prof. Gilvan Vilarm
 
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
 
Palestra BrOffice.org
Palestra BrOffice.orgPalestra BrOffice.org
Palestra BrOffice.org
 
A Linguagem Ruby
A Linguagem RubyA Linguagem Ruby
A Linguagem Ruby
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
Python WTFAQ?
Python WTFAQ?Python WTFAQ?
Python WTFAQ?
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
Programando em Elixir
Programando em ElixirProgramando em Elixir
Programando em Elixir
 
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
 
Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e Expressivo
 

Destacado

Destacado (8)

Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaque
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
How to Battle Bad Reviews
How to Battle Bad ReviewsHow to Battle Bad Reviews
How to Battle Bad Reviews
 
Activism x Technology
Activism x TechnologyActivism x Technology
Activism x Technology
 
Hands on com_back_track_5
Hands on com_back_track_5Hands on com_back_track_5
Hands on com_back_track_5
 
SysAdmin para Devs - Siege
SysAdmin para Devs - SiegeSysAdmin para Devs - Siege
SysAdmin para Devs - Siege
 
O editor vim
O editor vimO editor vim
O editor vim
 

Similar a Python para Devs título

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 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
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfAthena542429
 
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
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4javamanrj
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3IP10
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para phpFabio B. Silva
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013Marco Mendes
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfProfIvanSaboia
 
Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheirasHigor César
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 

Similar a Python para Devs título (20)

Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
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 Estado do Python
O Estado do PythonO Estado do Python
O Estado do Python
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
 
Introdução ao Python com Django
Introdução ao Python com DjangoIntrodução ao Python com Django
Introdução ao Python com Django
 
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
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4
 
Seja DinâMico Com Python
Seja DinâMico Com PythonSeja DinâMico Com Python
Seja DinâMico Com Python
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para php
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013
 
Hackeando o Facebook com Python
Hackeando o Facebook com PythonHackeando o Facebook com Python
Hackeando o Facebook com Python
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheiras
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 

Más de Evaldo Junior

Dafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioDafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioEvaldo Junior
 
Lidando com Código Duplicado - PHP Conference Brasil 2013
Lidando com Código Duplicado - PHP Conference Brasil 2013Lidando com Código Duplicado - PHP Conference Brasil 2013
Lidando com Código Duplicado - PHP Conference Brasil 2013Evaldo Junior
 
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013Evaldo Junior
 
Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013Evaldo Junior
 
Ambiente livre para desenvolvimento web
Ambiente livre para desenvolvimento webAmbiente livre para desenvolvimento web
Ambiente livre para desenvolvimento webEvaldo Junior
 
A Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosA Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosEvaldo Junior
 
Sustentabilidade de Projetos Livres
Sustentabilidade de Projetos LivresSustentabilidade de Projetos Livres
Sustentabilidade de Projetos LivresEvaldo Junior
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitEvaldo Junior
 

Más de Evaldo Junior (9)

Dafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a SérioDafiti Tech Conference - PHP Levado a Sério
Dafiti Tech Conference - PHP Levado a Sério
 
Lidando com Código Duplicado - PHP Conference Brasil 2013
Lidando com Código Duplicado - PHP Conference Brasil 2013Lidando com Código Duplicado - PHP Conference Brasil 2013
Lidando com Código Duplicado - PHP Conference Brasil 2013
 
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
A Evolução do PHP - A Linguagem Número 1 da Web - PHP Conference Brasil 2013
 
Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013
 
Ambiente livre para desenvolvimento web
Ambiente livre para desenvolvimento webAmbiente livre para desenvolvimento web
Ambiente livre para desenvolvimento web
 
Evolucao php2
Evolucao php2Evolucao php2
Evolucao php2
 
A Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosA Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In Santos
 
Sustentabilidade de Projetos Livres
Sustentabilidade de Projetos LivresSustentabilidade de Projetos Livres
Sustentabilidade de Projetos Livres
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 

Python para Devs título