Python para quem sabe Delphi
Mario Guedes
Que Mario?
• 40 anos, pai do Júlio e da Fernanda
• Conectado desde 1999 (20 anos!)
• Artesão de Software em Delphi, Python, Lua, JavaScript, noSQL ...
• CTO na Sofie Tecnologia
• Vivência em soluções de grande porte para Contact Center
• Em todas as redes: /jmarioguedes
• jmarioguedes@gmail.com Não sou eu!
Sou eu!
Por que Python?
• É muito conveniente ter uma linguagem interpretada à mão.
• Especialmente, mas não especificamente, para tarefas que envolvam análise de dados.
• Mas qual escolher? Python, Ruby, Lua, JavaScript, Go, R, Haskell, Scala, Elixir e etc e etc?
• Escolhemos Python!
• Diferenciais:
• Vasto ecossistema de bibliotecas
• Um poderoso “canivete suíço”
• Baixíssima verbosidade
• Muitas semelhanças com o Pascal
• Aspectos técnicos:
• De propósito geral
• Multi paradigma: OOP, funcional, ...
• Tipagem dinâmica e forte
• Interpretada
• 27 anos de maturidade
• Baixa curva de aprendizado
Montando o ambiente
• Baixe o interpretador em https://www.python.org/
• Observe que há duas “famílias”: 2.x e 3.x
• Neste slide dei prints no IDLE, editor integrado do Python no Windows
• Sugiro a IDE do JetBrains, o PyCharm:
https://www.jetbrains.com/pycharm/
• Use o seu editor preferido no começo: Notepad++, Sublime e etc
• É uma pergunta clássica
• Não faz parte do Python propriamente dito, é de terceiros
Jupyter Notebook
• Notebook é um conceito bem
difundido em análise de dados.
• É uma versão moderna dos
cadernos de anotações
científicas.
• No Python temos o Jupyter que é
um acrônimo que cita três
linguagens: Ju - Julia Py - Python
R
• Não vem com o Python, é
instalada à parte.
Olá mundo!
• Os arquivos de código tem a extensão .py
• Você pode executar o IDLE ou o console para iniciar um editor “live code”
• Para executar um módulo o comando é: python.exe nome_modulo.py
• Para trabalhos mais elaborados existe o Jupyter Notebook
Comentário e documentação
• Um comentário de linha se inicia com #
• DocString: Módulos, classes e métodos podem ser documentados com
“““ ... ”””
Convenção de Nomeação
• O padrão é o snake_case para nome de módulos,
métodos e variáveis
• E CamelCase para nome de classes
• Atribuição é feito com o sinal =
• Por ser uma linguagem de tipagem dinâmica não é
necessário declarar variáveis ou o tipo dos parâmetros
• E por ser de tipagem forte não conseguimos fazer muita
besteira como por exemplo:
Início e fim de bloco
• Um bloco de código é definido por um
recuo em relação ao bloco anterior
• Sem {}, sem begin end, sem ;
• Dê preferência à 4 espaços e não TAB
• Eu sei, eu sei, parece bizarro no começo
• Mas isso se traduz em menos esforço de
digitação e mental com o tempo
• Isso força concisão de código
Pyhton é uma linguagem de classe
• Observe que “tudo é classe” no Python
• str – Strings
• int – Integer
• float – Real
• bool – Boolean
• None – Nulo
• list() – Lista, array
• dict() – Dicionário
• tuple() – Tupla
• set() - Conjunto
• ...
Função geradora
• Entre os diversos recursos da
linguagem destaco a função geradora.
• Nos permite criar funções
“preguiçosas”, ou seja, só vai efetuar
computação quando necessário.
• Ideal para consumir arquivos, banco
de dados, enfim, qualquer coisa que
tenha I/O.
• É uma característica muito
conveniente por conta do design do
código onde conseguimos manter um
escopo isolado e reutilizável.
Paradigma OOP
• Manja de OOP? É do jeito que você
conhece com diferenças de
convenções sintáticas.
• Perceba que foi implementado o
método __str__ (dunder str) que
permite representar o objeto como
string. Existem diversos outros
métodos especiais.
• Não é necessário se preocupar em
liberar objetos da memória.
Paradigma funcional
• É um conhecimento
importante para a área de
Data Science
• O exemplo ao lado é uma
verificação de CPF que é
uma rotina verbosa em
qualquer linguagem
• No começo é difícil e
bizarro, mas com o tempo
fica trivial
Pra não dizer que não falei da Copa
• O site https://worldcup.sfg.io/
oferece uma API Rest com as
informações de cada jogo da
Copa do Mundo, inclusive o
feminino.
• Uma simples listagem com os
resultados poderia ser da
seguinte forma:
Foi só um visão geral
• Tem bastante coisa legal no Python e no
seu ecossistema
• Aprenda mais com os melhores:
https://www.python.pro.br/
• Não acredito que seja o caso de migrar de
tecnologia mas de agregar e ampliar:
Foi esta a mensagem que eu quis passar. ;)
• Não existe “bala de prata”: aumente o seu
repertório e adote a melhor ferramenta
para cada problema.
Links interessantes
• Livro: Python Fluente - Novatec Editora
Luciano Ramalho
https://novatec.com.br/livros/pythonfluente/
• Programação funcional com Python #0 - Saindo da zona de conforto
Eduardo Mendes
http://pythonclub.com.br/progrmacao-funcional-com-python-0.html
http://pythonclub.com.br/progrmacao-funcional-com-python-1.html
http://pythonclub.com.br/progrmacao-funcional-com-python-2.html
• Iteração em Python: do básico ao genial - Luciano Ramalho - Rupy 2012
Luciano Ramalho
https://youtu.be/ULj7ejvuzI8
• Exemplos desta palestra:
https://github.com/jmarioguedes/extremeexperience2018
Obrigado
jmarioguedes@gmail.com
fb.com/jmarioguedes
linkedin.com/in/jmarioguedes

Extreme Experience 2018 | Python para quem sabe Delphi

  • 2.
    Python para quemsabe Delphi Mario Guedes
  • 3.
    Que Mario? • 40anos, pai do Júlio e da Fernanda • Conectado desde 1999 (20 anos!) • Artesão de Software em Delphi, Python, Lua, JavaScript, noSQL ... • CTO na Sofie Tecnologia • Vivência em soluções de grande porte para Contact Center • Em todas as redes: /jmarioguedes • jmarioguedes@gmail.com Não sou eu! Sou eu!
  • 4.
    Por que Python? •É muito conveniente ter uma linguagem interpretada à mão. • Especialmente, mas não especificamente, para tarefas que envolvam análise de dados. • Mas qual escolher? Python, Ruby, Lua, JavaScript, Go, R, Haskell, Scala, Elixir e etc e etc? • Escolhemos Python! • Diferenciais: • Vasto ecossistema de bibliotecas • Um poderoso “canivete suíço” • Baixíssima verbosidade • Muitas semelhanças com o Pascal • Aspectos técnicos: • De propósito geral • Multi paradigma: OOP, funcional, ... • Tipagem dinâmica e forte • Interpretada • 27 anos de maturidade • Baixa curva de aprendizado
  • 5.
    Montando o ambiente •Baixe o interpretador em https://www.python.org/ • Observe que há duas “famílias”: 2.x e 3.x • Neste slide dei prints no IDLE, editor integrado do Python no Windows • Sugiro a IDE do JetBrains, o PyCharm: https://www.jetbrains.com/pycharm/ • Use o seu editor preferido no começo: Notepad++, Sublime e etc • É uma pergunta clássica • Não faz parte do Python propriamente dito, é de terceiros
  • 6.
    Jupyter Notebook • Notebooké um conceito bem difundido em análise de dados. • É uma versão moderna dos cadernos de anotações científicas. • No Python temos o Jupyter que é um acrônimo que cita três linguagens: Ju - Julia Py - Python R • Não vem com o Python, é instalada à parte.
  • 7.
    Olá mundo! • Osarquivos de código tem a extensão .py • Você pode executar o IDLE ou o console para iniciar um editor “live code” • Para executar um módulo o comando é: python.exe nome_modulo.py • Para trabalhos mais elaborados existe o Jupyter Notebook
  • 8.
    Comentário e documentação •Um comentário de linha se inicia com # • DocString: Módulos, classes e métodos podem ser documentados com “““ ... ”””
  • 9.
    Convenção de Nomeação •O padrão é o snake_case para nome de módulos, métodos e variáveis • E CamelCase para nome de classes • Atribuição é feito com o sinal = • Por ser uma linguagem de tipagem dinâmica não é necessário declarar variáveis ou o tipo dos parâmetros • E por ser de tipagem forte não conseguimos fazer muita besteira como por exemplo:
  • 10.
    Início e fimde bloco • Um bloco de código é definido por um recuo em relação ao bloco anterior • Sem {}, sem begin end, sem ; • Dê preferência à 4 espaços e não TAB • Eu sei, eu sei, parece bizarro no começo • Mas isso se traduz em menos esforço de digitação e mental com o tempo • Isso força concisão de código
  • 11.
    Pyhton é umalinguagem de classe • Observe que “tudo é classe” no Python • str – Strings • int – Integer • float – Real • bool – Boolean • None – Nulo • list() – Lista, array • dict() – Dicionário • tuple() – Tupla • set() - Conjunto • ...
  • 12.
    Função geradora • Entreos diversos recursos da linguagem destaco a função geradora. • Nos permite criar funções “preguiçosas”, ou seja, só vai efetuar computação quando necessário. • Ideal para consumir arquivos, banco de dados, enfim, qualquer coisa que tenha I/O. • É uma característica muito conveniente por conta do design do código onde conseguimos manter um escopo isolado e reutilizável.
  • 13.
    Paradigma OOP • Manjade OOP? É do jeito que você conhece com diferenças de convenções sintáticas. • Perceba que foi implementado o método __str__ (dunder str) que permite representar o objeto como string. Existem diversos outros métodos especiais. • Não é necessário se preocupar em liberar objetos da memória.
  • 14.
    Paradigma funcional • Éum conhecimento importante para a área de Data Science • O exemplo ao lado é uma verificação de CPF que é uma rotina verbosa em qualquer linguagem • No começo é difícil e bizarro, mas com o tempo fica trivial
  • 15.
    Pra não dizerque não falei da Copa • O site https://worldcup.sfg.io/ oferece uma API Rest com as informações de cada jogo da Copa do Mundo, inclusive o feminino. • Uma simples listagem com os resultados poderia ser da seguinte forma:
  • 16.
    Foi só umvisão geral • Tem bastante coisa legal no Python e no seu ecossistema • Aprenda mais com os melhores: https://www.python.pro.br/ • Não acredito que seja o caso de migrar de tecnologia mas de agregar e ampliar: Foi esta a mensagem que eu quis passar. ;) • Não existe “bala de prata”: aumente o seu repertório e adote a melhor ferramenta para cada problema.
  • 17.
    Links interessantes • Livro:Python Fluente - Novatec Editora Luciano Ramalho https://novatec.com.br/livros/pythonfluente/ • Programação funcional com Python #0 - Saindo da zona de conforto Eduardo Mendes http://pythonclub.com.br/progrmacao-funcional-com-python-0.html http://pythonclub.com.br/progrmacao-funcional-com-python-1.html http://pythonclub.com.br/progrmacao-funcional-com-python-2.html • Iteração em Python: do básico ao genial - Luciano Ramalho - Rupy 2012 Luciano Ramalho https://youtu.be/ULj7ejvuzI8 • Exemplos desta palestra: https://github.com/jmarioguedes/extremeexperience2018
  • 18.

Notas do Editor

  • #4 Apresentação pessoal