SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
O Canivete Suíço do Python




       Douglas Soares de Andrade
O Canivete Suíço do Python


      Conteúdo da Apresentação

     ●   Introdução
     ●   Sobre a palestra
     ●   O que é Python ?
     ●   Quem usa ?
     ●   Convenções utilizadas na palestra
     ●   Baterias inclusas
O Canivete Suíço do Python


      Introdução (Douglas)

     ●   Desenvolvedor na Dataprev
         ● Python

         ● Zope e Plone

         ● PHP (wordpress, drupal)



     ●   Participante de vários projetos de SL
         ● Archlinux (Desenvolvedor, TU, Mantenedor de pacotes)

         ● Web2py

         ● Plone Collective



     ●   Py (ops, pai) de três lindas crianças =)
O Canivete Suíço do Python


      E vocês ?

      ●   Quem já ouviu falar em Python ?
      ●   Alguém trabalha com desenvolvimento de sistemas ?

      ●   Alguém trabalha com Python ?

      ●   Alguém já viu algum código Python e pensou:
                       (pra não dizer outra coisa)



                  “Será que dá pra fazer
                       isso melhor ?!”
O Canivete Suíço do Python


      Sobre a palestra

     ●    Não é um mão-na-massa de Python


     ●    Não é uma batalha de pythonismos


     ●    Exemplos simples, concisos e didáticos


     ●    Baterias inclusas

      ●   Além de tudo, é uma palestra sobre...
O Canivete Suíço do Python




                             “Não perguntar o que
                             você pode fazer por
                             Python, mas sim o que
                             Python pode fazer por
                             você.”
O Canivete Suíço do Python


      O que é Python ?




      ●   Iniciada em 1990 por Guido Van Rossum no CWI para
      ser a linguagem de script do sistema operacional
      distribuído AMOEBA.
      ●    Inspirada pela linguagem ABC, criada também no
      CWI, que era uma linguagem de programação para
      usuários avançados em computação mas que não eram
      programadores.
      ●    Nome vem do grupo humorístico Monty Python, do
      qual Guido é fan
O Canivete Suíço do Python


      Muito prazer, meu nome é Python



      ●   Pode ser usada interativamente
      ●   Tipos de dados básicos poderosos
      ●   Baterias Inclusas
      ●   Software Livre
      ●   Os blocos são controlados por indentação
      ●   Tudo é objeto
      ●   É simples e transparente
      ●   Ajuda o programador
      ●   Comunidade de programadores
          apaixonados
O Canivete Suíço do Python


      Convenções utilizadas




       >>> Interpretador de Python
       ... Bloco lógico
       $    Indica que o comando foi executado em um shell
O Canivete Suíço do Python




                 Baterias Inclusas
                             (E algumas dicas legais)
O Canivete Suíço do Python


      Básico - Strings

      Adicionar zeros a uma string numérica:
O Canivete Suíço do Python


      Básico - Strings

      Trocar caracteres de um texto:
O Canivete Suíço do Python


      Básico - Strings

      Trocar caracteres de um texto:
O Canivete Suíço do Python


      Básico - Strings

      BONUS POINTS !!! Trocar caracteres de um texto:
O Canivete Suíço do Python


      Básico - Strings

      Substituições de textos maiores:
O Canivete Suíço do Python


      Básico - Strings

      Substituições de textos maiores:
O Canivete Suíço do Python


      Básico - Números

      Validar se um valor é numérico:
O Canivete Suíço do Python


      Básico - Números

      Frações:




   Divisão:                  BONUS POINTS !
O Canivete Suíço do Python


      Básico - Sets

      Retornar os valores únicos de uma lista de elementos:
O Canivete Suíço do Python


      Collections - Counter
      Container que mantém um controle de quantas vezes um elemento
      equivalente foi adicionado
O Canivete Suíço do Python


      Collections - Namedtuple
      Facilita o acesso a elementos de uma tupla, permitindo a atribuição de um
      nome para os atributos
O Canivete Suíço do Python

Collections
Namedtuple
O Canivete Suíço do Python


      Collections - ordereddict
      Dicionários que 'sabem' a ordem em que seus elementos foram inseridos
O Canivete Suíço do Python


      Collections - ordereddict
      Dicionários que 'sabem' a ordem em que seus elementos foram inseridos
O Canivete Suíço do Python


      Gerais
      Generator e Set expressions (dica de performance)
O Canivete Suíço do Python


      Gerais - Any

      Testar se ao menos um dos elementos satisfaz determinada condição
O Canivete Suíço do Python


Gerais - textwrap

Ajuda a manter a
sanidade de strings
com aspas triplas
O Canivete Suíço do Python


Gerais - textwrap

Ajuda a manter a
sanidade de strings
com aspas triplas
O Canivete Suíço do Python


                             Gerais - cmd

                             Processador de comandos simples
O Canivete Suíço do Python


      Gerais
    Servir arquivos de um diretório da máquina
O Canivete Suíço do Python


   Gerais
    Auto completar no terminal (sem ipython)
O Canivete Suíço do Python


    O que é interessante, mas fica pra próxima
    ●   Aspectos funcionais de Python
          ● map

          ● filter

          ● reduce

          ● lambda




    ● Outros módulos que vocês devem checar
        ● Itertools (Ferramentas para trabalhar com iteráveis)

        ● Functools (Ferramentas para trabalhar com funções para adapta-las ou extende-


          las)
        ● Documentação do comando set (tem muita coisa bacana lá)

        ● Serialização: json e cPickle

        ● pprint: Imprimir estruturas de dados de modo elegante

    ● Módulos e programas fora da stdlib que são sensacionais

        ● ipython

        ● bpython

        ● see

        ● ...
O Canivete Suíço do Python
O Canivete Suíço do Python




   Contato:

   Douglas Soares de Andrade
   Email : dsandrade@gmail.com
   Twitter: @douglasandrade
   Github: @dsarch




                             Muito Obrigado =)

Más contenido relacionado

La actualidad más candente

Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaHelder Lopes
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebEduardo Lanna
 
UML 적절하게 사용하기
UML 적절하게 사용하기UML 적절하게 사용하기
UML 적절하게 사용하기종빈 오
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoFelipe J. R. Vieira
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetoseneck
 
Permissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos LinuxPermissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos LinuxWellington Oliveira
 
Resilient Distributed Datasets
Resilient Distributed DatasetsResilient Distributed Datasets
Resilient Distributed DatasetsAlessandro Menabò
 
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...Lohraine Ifro Oliveira
 
Aula 1 - 31 Jan 23.pdf
Aula 1 - 31 Jan 23.pdfAula 1 - 31 Jan 23.pdf
Aula 1 - 31 Jan 23.pdfedilson42986
 
[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...
[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...
[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...EloGroup
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...
Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...
Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...Mariano Pimentel
 
Cheklist manutenção de computadores v2
Cheklist   manutenção de computadores v2Cheklist   manutenção de computadores v2
Cheklist manutenção de computadores v2grgerenciaba
 

La actualidad más candente (20)

Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
F14 lec12graphs
F14 lec12graphsF14 lec12graphs
F14 lec12graphs
 
Internet das Coisas
Internet das CoisasInternet das Coisas
Internet das Coisas
 
Comandos CMD
Comandos CMDComandos CMD
Comandos CMD
 
Ferramentas da Qualidade
Ferramentas da QualidadeFerramentas da Qualidade
Ferramentas da Qualidade
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
 
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores WebGerenciamento de Vulnerabilidades em Aplicações e Servidores Web
Gerenciamento de Vulnerabilidades em Aplicações e Servidores Web
 
UML 적절하게 사용하기
UML 적절하게 사용하기UML 적절하게 사용하기
UML 적절하게 사용하기
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de Armazenamento
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetos
 
Permissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos LinuxPermissão de Acesso - Sistema de Arquivos Linux
Permissão de Acesso - Sistema de Arquivos Linux
 
Gestão de Projetos - Prof. João Frederico Gonzales
Gestão de Projetos - Prof. João Frederico GonzalesGestão de Projetos - Prof. João Frederico Gonzales
Gestão de Projetos - Prof. João Frederico Gonzales
 
Resilient Distributed Datasets
Resilient Distributed DatasetsResilient Distributed Datasets
Resilient Distributed Datasets
 
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...
 
Aula 1 - 31 Jan 23.pdf
Aula 1 - 31 Jan 23.pdfAula 1 - 31 Jan 23.pdf
Aula 1 - 31 Jan 23.pdf
 
[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...
[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...
[BPM Global Trends 2014] Davison Ferreira (EBSERH) – O Papel de BPM na Constr...
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...
Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...
Pesquisa científica em Computação com desenvolvimento de artefatos: Design Sc...
 
Cheklist manutenção de computadores v2
Cheklist   manutenção de computadores v2Cheklist   manutenção de computadores v2
Cheklist manutenção de computadores v2
 

Destacado

Introdução ao python
Introdução ao pythonIntrodução ao python
Introdução ao pythonMaria Silveira
 
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?Humberto Diógenes
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
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 PythonCarlos Schults
 
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
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!Juliano Atanazio
 
Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Marco Mendes
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilMarcel Caraciolo
 
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
 
Python no Celular
Python no CelularPython no Celular
Python no Celulariuridiniz
 
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
 
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)Marcelo Barros de Almeida
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaqueLuciano Ramalho
 

Destacado (20)

Introdução ao python
Introdução ao pythonIntrodução ao python
Introdução ao python
 
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
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
 
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
 
Python 01
Python 01Python 01
Python 01
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!
 
Introducao python 2010
Introducao python 2010Introducao python 2010
Introducao python 2010
 
Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009
 
Porque Python?
Porque Python?Porque Python?
Porque Python?
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
 
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
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
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
 
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)
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaque
 

Similar a Canivete suíço do Python

Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução PythonGleison Rodrigues
 
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
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
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
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! dJoelmir Ribacki
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
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
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013Marco Mendes
 
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
 

Similar a Canivete suíço do Python (20)

Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
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
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Canivete python
Canivete pythonCanivete python
Canivete 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
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
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 para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Programação Python na Iot
Programação Python na IotProgramação Python na Iot
Programação Python na Iot
 
Python
PythonPython
Python
 
Python para Desenvolvedores
Python para DesenvolvedoresPython para Desenvolvedores
Python para Desenvolvedores
 
Python para devs
Python para devsPython para devs
Python para devs
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013
 
Python for kids
Python for kidsPython for kids
Python for kids
 
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
 

Último

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Canivete suíço do Python

  • 1. O Canivete Suíço do Python Douglas Soares de Andrade
  • 2.
  • 3. O Canivete Suíço do Python Conteúdo da Apresentação ● Introdução ● Sobre a palestra ● O que é Python ? ● Quem usa ? ● Convenções utilizadas na palestra ● Baterias inclusas
  • 4. O Canivete Suíço do Python Introdução (Douglas) ● Desenvolvedor na Dataprev ● Python ● Zope e Plone ● PHP (wordpress, drupal) ● Participante de vários projetos de SL ● Archlinux (Desenvolvedor, TU, Mantenedor de pacotes) ● Web2py ● Plone Collective ● Py (ops, pai) de três lindas crianças =)
  • 5. O Canivete Suíço do Python E vocês ? ● Quem já ouviu falar em Python ? ● Alguém trabalha com desenvolvimento de sistemas ? ● Alguém trabalha com Python ? ● Alguém já viu algum código Python e pensou: (pra não dizer outra coisa) “Será que dá pra fazer isso melhor ?!”
  • 6. O Canivete Suíço do Python Sobre a palestra ● Não é um mão-na-massa de Python ● Não é uma batalha de pythonismos ● Exemplos simples, concisos e didáticos ● Baterias inclusas ● Além de tudo, é uma palestra sobre...
  • 7. O Canivete Suíço do Python “Não perguntar o que você pode fazer por Python, mas sim o que Python pode fazer por você.”
  • 8. O Canivete Suíço do Python O que é Python ? ● Iniciada em 1990 por Guido Van Rossum no CWI para ser a linguagem de script do sistema operacional distribuído AMOEBA. ● Inspirada pela linguagem ABC, criada também no CWI, que era uma linguagem de programação para usuários avançados em computação mas que não eram programadores. ● Nome vem do grupo humorístico Monty Python, do qual Guido é fan
  • 9. O Canivete Suíço do Python Muito prazer, meu nome é Python ● Pode ser usada interativamente ● Tipos de dados básicos poderosos ● Baterias Inclusas ● Software Livre ● Os blocos são controlados por indentação ● Tudo é objeto ● É simples e transparente ● Ajuda o programador ● Comunidade de programadores apaixonados
  • 10. O Canivete Suíço do Python Convenções utilizadas >>> Interpretador de Python ... Bloco lógico $ Indica que o comando foi executado em um shell
  • 11. O Canivete Suíço do Python Baterias Inclusas (E algumas dicas legais)
  • 12. O Canivete Suíço do Python Básico - Strings Adicionar zeros a uma string numérica:
  • 13. O Canivete Suíço do Python Básico - Strings Trocar caracteres de um texto:
  • 14. O Canivete Suíço do Python Básico - Strings Trocar caracteres de um texto:
  • 15. O Canivete Suíço do Python Básico - Strings BONUS POINTS !!! Trocar caracteres de um texto:
  • 16. O Canivete Suíço do Python Básico - Strings Substituições de textos maiores:
  • 17. O Canivete Suíço do Python Básico - Strings Substituições de textos maiores:
  • 18. O Canivete Suíço do Python Básico - Números Validar se um valor é numérico:
  • 19. O Canivete Suíço do Python Básico - Números Frações: Divisão: BONUS POINTS !
  • 20. O Canivete Suíço do Python Básico - Sets Retornar os valores únicos de uma lista de elementos:
  • 21. O Canivete Suíço do Python Collections - Counter Container que mantém um controle de quantas vezes um elemento equivalente foi adicionado
  • 22. O Canivete Suíço do Python Collections - Namedtuple Facilita o acesso a elementos de uma tupla, permitindo a atribuição de um nome para os atributos
  • 23. O Canivete Suíço do Python Collections Namedtuple
  • 24. O Canivete Suíço do Python Collections - ordereddict Dicionários que 'sabem' a ordem em que seus elementos foram inseridos
  • 25. O Canivete Suíço do Python Collections - ordereddict Dicionários que 'sabem' a ordem em que seus elementos foram inseridos
  • 26. O Canivete Suíço do Python Gerais Generator e Set expressions (dica de performance)
  • 27. O Canivete Suíço do Python Gerais - Any Testar se ao menos um dos elementos satisfaz determinada condição
  • 28. O Canivete Suíço do Python Gerais - textwrap Ajuda a manter a sanidade de strings com aspas triplas
  • 29. O Canivete Suíço do Python Gerais - textwrap Ajuda a manter a sanidade de strings com aspas triplas
  • 30. O Canivete Suíço do Python Gerais - cmd Processador de comandos simples
  • 31. O Canivete Suíço do Python Gerais Servir arquivos de um diretório da máquina
  • 32. O Canivete Suíço do Python Gerais Auto completar no terminal (sem ipython)
  • 33. O Canivete Suíço do Python O que é interessante, mas fica pra próxima ● Aspectos funcionais de Python ● map ● filter ● reduce ● lambda ● Outros módulos que vocês devem checar ● Itertools (Ferramentas para trabalhar com iteráveis) ● Functools (Ferramentas para trabalhar com funções para adapta-las ou extende- las) ● Documentação do comando set (tem muita coisa bacana lá) ● Serialização: json e cPickle ● pprint: Imprimir estruturas de dados de modo elegante ● Módulos e programas fora da stdlib que são sensacionais ● ipython ● bpython ● see ● ...
  • 34. O Canivete Suíço do Python
  • 35. O Canivete Suíço do Python Contato: Douglas Soares de Andrade Email : dsandrade@gmail.com Twitter: @douglasandrade Github: @dsarch Muito Obrigado =)