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 =)

Canivete suíço do Python

  • 1.
    O Canivete Suíçodo Python Douglas Soares de Andrade
  • 3.
    O Canivete Suíçodo 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íçodo 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íçodo 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íçodo 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íçodo Python “Não perguntar o que você pode fazer por Python, mas sim o que Python pode fazer por você.”
  • 8.
    O Canivete Suíçodo 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íçodo 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íçodo Python Convenções utilizadas >>> Interpretador de Python ... Bloco lógico $ Indica que o comando foi executado em um shell
  • 11.
    O Canivete Suíçodo Python Baterias Inclusas (E algumas dicas legais)
  • 12.
    O Canivete Suíçodo Python Básico - Strings Adicionar zeros a uma string numérica:
  • 13.
    O Canivete Suíçodo Python Básico - Strings Trocar caracteres de um texto:
  • 14.
    O Canivete Suíçodo Python Básico - Strings Trocar caracteres de um texto:
  • 15.
    O Canivete Suíçodo Python Básico - Strings BONUS POINTS !!! Trocar caracteres de um texto:
  • 16.
    O Canivete Suíçodo Python Básico - Strings Substituições de textos maiores:
  • 17.
    O Canivete Suíçodo Python Básico - Strings Substituições de textos maiores:
  • 18.
    O Canivete Suíçodo Python Básico - Números Validar se um valor é numérico:
  • 19.
    O Canivete Suíçodo Python Básico - Números Frações: Divisão: BONUS POINTS !
  • 20.
    O Canivete Suíçodo Python Básico - Sets Retornar os valores únicos de uma lista de elementos:
  • 21.
    O Canivete Suíçodo Python Collections - Counter Container que mantém um controle de quantas vezes um elemento equivalente foi adicionado
  • 22.
    O Canivete Suíçodo 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íçodo Python Collections Namedtuple
  • 24.
    O Canivete Suíçodo Python Collections - ordereddict Dicionários que 'sabem' a ordem em que seus elementos foram inseridos
  • 25.
    O Canivete Suíçodo Python Collections - ordereddict Dicionários que 'sabem' a ordem em que seus elementos foram inseridos
  • 26.
    O Canivete Suíçodo Python Gerais Generator e Set expressions (dica de performance)
  • 27.
    O Canivete Suíçodo Python Gerais - Any Testar se ao menos um dos elementos satisfaz determinada condição
  • 28.
    O Canivete Suíçodo Python Gerais - textwrap Ajuda a manter a sanidade de strings com aspas triplas
  • 29.
    O Canivete Suíçodo Python Gerais - textwrap Ajuda a manter a sanidade de strings com aspas triplas
  • 30.
    O Canivete Suíçodo Python Gerais - cmd Processador de comandos simples
  • 31.
    O Canivete Suíçodo Python Gerais Servir arquivos de um diretório da máquina
  • 32.
    O Canivete Suíçodo Python Gerais Auto completar no terminal (sem ipython)
  • 33.
    O Canivete Suíçodo 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.
  • 35.
    O Canivete Suíçodo Python Contato: Douglas Soares de Andrade Email : dsandrade@gmail.com Twitter: @douglasandrade Github: @dsarch Muito Obrigado =)