Python é uma linguagem de programação interpretada, de tipagem dinâmica e forte, multi-paradigma com vasto ecossistema de bibliotecas. Apresenta semelhanças com Pascal e baixa curva de aprendizado. Sua sintaxe limpa e concisa torna o código mais legível.
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