SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
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 =)

Contenu connexe

Tendances

Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysLoiane Groner
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaLeinylson Fontinele
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Leinylson Fontinele
 
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
PythonPython
PythonTiago
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Pisca de led com transistor 2 n3904
Pisca de led com transistor 2 n3904Pisca de led com transistor 2 n3904
Pisca de led com transistor 2 n3904Masaya Ito
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3Diego Andrés Alvarez Marín
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 

Tendances (20)

Poo
PooPoo
Poo
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na prática
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Função PROCV
Função PROCVFunção PROCV
Função PROCV
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
 
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
 
Pascal
PascalPascal
Pascal
 
Python
PythonPython
Python
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Pisca de led com transistor 2 n3904
Pisca de led com transistor 2 n3904Pisca de led com transistor 2 n3904
Pisca de led com transistor 2 n3904
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 

En vedette

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 à 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
 
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
 
Desenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em PythonDesenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em PythonRelsi Maron
 
Modelo OSI - Camada de Rede
Modelo OSI - Camada de RedeModelo OSI - Camada de Rede
Modelo OSI - Camada de RedeWalyson Vëras
 

En vedette (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 à 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
 
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
 
Desenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em PythonDesenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em Python
 
Modelo OSI - Camada de Rede
Modelo OSI - Camada de RedeModelo OSI - Camada de Rede
Modelo OSI - Camada de Rede
 

Similaire à 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
 

Similaire à 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
 

Dernier

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

Dernier (6)

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