SlideShare uma empresa Scribd logo
Extreme Experience 2018 | Python para quem sabe Delphi
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

Mais conteúdo relacionado

PPTX
Palestra Apresentando Python e Suas Aplicações
ODP
Matando o Java e Mostrando o Python
PDF
Python Módulo Básico - Introdução a linguagem Python
PDF
Introdução à linguagem de programação Python
PPTX
Seminário - Guido van Rossum: Breve história da linguagem Python
PDF
Por Que Python É Tão Lento?
PDF
Introdução à Programação em Python
PDF
Programando em Elixir
Palestra Apresentando Python e Suas Aplicações
Matando o Java e Mostrando o Python
Python Módulo Básico - Introdução a linguagem Python
Introdução à linguagem de programação Python
Seminário - Guido van Rossum: Breve história da linguagem Python
Por Que Python É Tão Lento?
Introdução à Programação em Python
Programando em Elixir

Mais procurados (20)

PPT
Apresentando a Linguagem de Programação Python
PDF
Canivete python
PDF
Python para iniciantes
ODP
Programando em Elixir
PDF
Python como primeira linguagem de programação
PDF
Erlang e Elixir por uma web mais feliz
PPS
Curso Python - Aula 01
PDF
Introdução a linguagem Python
PDF
Canivete suíço do Python
PPTX
Seminário: JavaScript
PDF
Paradigmas de Linguagens de Programação - Classificações
PDF
Conhencendo Python e por que ela importa?
PDF
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
PDF
Como tornar-se um programador Python melhor
PDF
Arduino: hardware hacking & coding dojo
ODP
Python django7semestre
PDF
Processamento Automático da Língua Portuguesa: DevInSampa 2011
PDF
Desenvolvimento web com python e django
PPTX
PPTX
Seminário: Lua
Apresentando a Linguagem de Programação Python
Canivete python
Python para iniciantes
Programando em Elixir
Python como primeira linguagem de programação
Erlang e Elixir por uma web mais feliz
Curso Python - Aula 01
Introdução a linguagem Python
Canivete suíço do Python
Seminário: JavaScript
Paradigmas de Linguagens de Programação - Classificações
Conhencendo Python e por que ela importa?
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Como tornar-se um programador Python melhor
Arduino: hardware hacking & coding dojo
Python django7semestre
Processamento Automático da Língua Portuguesa: DevInSampa 2011
Desenvolvimento web com python e django
Seminário: Lua
Anúncio

Semelhante a Extreme Experience 2018 | Python para quem sabe Delphi (20)

ODP
Python para desenvolvedores - material apoio (parte I)
PDF
Cherrypy - um framework para desenvolvimento rápido de aplicações web
PDF
Programando para web com python - Introdução a Python
PDF
Curso de Python (Básico) - Português
PDF
Linguagem de Programação Python
PDF
Python Training #1 ed.6
PDF
Aula 01 python
PDF
Tutorial Python - 1
PDF
Python Training #1 - ed5
PDF
Comsolid2011 Introdução Python
PDF
Trabalho sobre a linguagem Python
PDF
Tutorial Python ed. #2
PDF
Livro para desenvolvedores de Python
PDF
Python Training #1, ed. 6
ODP
Linguagem Python
ODP
The zen of python 2010
PDF
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
PPT
Python2.5.ppt
PDF
Iniciando em Python
Python para desenvolvedores - material apoio (parte I)
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Programando para web com python - Introdução a Python
Curso de Python (Básico) - Português
Linguagem de Programação Python
Python Training #1 ed.6
Aula 01 python
Tutorial Python - 1
Python Training #1 - ed5
Comsolid2011 Introdução Python
Trabalho sobre a linguagem Python
Tutorial Python ed. #2
Livro para desenvolvedores de Python
Python Training #1, ed. 6
Linguagem Python
The zen of python 2010
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Python2.5.ppt
Iniciando em Python
Anúncio

Mais de Mario Guedes (20)

PPTX
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
PPTX
Fazendo barba, cabelo e bigode com REDIS
PDF
Integrando-se à Blockchain da Ethereum
PPTX
Entendendo HTTP para entender o REST
PPT
Expressão Regular - Cookbook
PDF
Geolocalização com Redis e Google Maps
PPTX
Foco no app, viva o serverless!
PPTX
Geolocalização com Redis e Google Maps
PPTX
Paralelismo na prática: Threads de uma vez por todas e sem medo!
PPTX
Escalabilidade com Redis
PPTX
Escalando o backend com NGINX e Redis
PPTX
Turbinando o seu sistema com Redis!
PPTX
Microsserviço, Escalabilidade e Resiliência - #comofas?
PPTX
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
PPTX
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
PPTX
Intensive Delphi 2017 - E este tal de Redis hein?
PPTX
BOT: Conversando com o seu sistema
PPTX
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
PPTX
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
PPTX
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
Fazendo barba, cabelo e bigode com REDIS
Integrando-se à Blockchain da Ethereum
Entendendo HTTP para entender o REST
Expressão Regular - Cookbook
Geolocalização com Redis e Google Maps
Foco no app, viva o serverless!
Geolocalização com Redis e Google Maps
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Escalabilidade com Redis
Escalando o backend com NGINX e Redis
Turbinando o seu sistema com Redis!
Microsserviço, Escalabilidade e Resiliência - #comofas?
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Intensive Delphi 2017 - E este tal de Redis hein?
BOT: Conversando com o seu sistema
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB

Último (7)

PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
Evolução em código: algoritmos genéticos com PHP
PDF
apresentacao introducao computacao ead.pdf
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PPTX
Mapeamento de Objeto para Tabela Relacional
PPTX
Curso de Windows 11 resumido na prática.pptx
Dos requisitos ao código: como criar código rastreável em PHP
Evolução em código: algoritmos genéticos com PHP
apresentacao introducao computacao ead.pdf
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Mapeamento de Objeto para Tabela Relacional
Curso de Windows 11 resumido na prática.pptx

Extreme Experience 2018 | Python para quem sabe Delphi

  • 2. Python para quem sabe Delphi Mario Guedes
  • 3. 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!
  • 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! • 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
  • 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 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
  • 11. 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 • ...
  • 12. 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.
  • 13. 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.
  • 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 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:
  • 16. 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.
  • 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

Notas do Editor

  • #4: Apresentação pessoal