Dojô Introdução a Programação com Python
O objetivo do dojô é apresentar as bases de projetos de progamação com Python
Antes de começar
-
Instale as seguintes ferramentas:
-
(Opcional, mas desejável) Configure um ambiente virtual:
- Crie uma pasta para o seu projeto
- Abra o terminal nessa pasta
- Você pode usar o CMD ou abrir a pasta no VS Code e usar o terminal integrado
- Configure um ambiente virtual com os comandos:
python3 -m venv .venv
source .venv/bin/activate
VS Code
O Visual Studio Code é um editor de código-fonte desenvolvido pela Microsoft para Windows, Linux e macOS. Ele inclui suporte para depuração, controle de versionamento Git incorporado, realce de sintaxe, complementação inteligente de código, snippets e refatoração de código
- É possível adicionar novos comportamentos ao VS Code por meio de extensões.
Alguns exemplos são:
- Jupyter
- GitHub Copilot (paga, possui free tier)
- Code GPT (requer API Token da Open AI)
Jupyter
Jupyter é um projeto de código aberto criado para oferecer suporte à ciência de dados interativa e à computação científica em linguagens de programação. O Jupyter oferece um ambiente baseado na Web para trabalhar com notebooks contendo código, dados e texto. Os notebooks Jupyter são o espaço de trabalho padrão para a maioria dos cientistas de dados Python
Ipython
IPython é um interpretador interativo para várias linguagens de programação, mas especialmente focado em Python. Ipython oferece "type introspection", "rich media", sintax shell, completação por tab e edição auxiliada por histórico de comando. Fornece um kernel Python para o Jupyter
Introdução ao Python
como pesquisar
- inglês
- stack overflow
- cheatsheet
- https://quickref.me/python.html
- https://www.pythoncheatsheet.org
- chat gpt
- IDE
- help
conceitos básicos
- data types:
- string:
'a', 'aaa', 'Hello!', '11 cats'
- integers:
-2, -1, 0, 1, 2, 3, 4, 5
- float points:
-1.25, -1.0, --0.5, 0.0, 0.5, 1.0, 1.25
- string:
- variáveis, constantes e atribuições:
a = 10
- comentários:
# This is a
# multiline comment
def foo():
"""
This is a function docstring
"""
- functions
- Parâmetros e retornos
- Escopo local e global
- O código no escopo global não pode usar nenhuma variável local
- No entanto, um escopo local pode acessar variáveis globais
Desafio 1: Criar uma função que receba um valor inicial, uma taxa e um prazo e retorne o rendimento. Use o arquivo tutorial como template
-
collection data structutes
- list
- indexada, ordenada, mutável
- dict
- chaves/valores
- set
- conjunto, não ordenado
- tuple
- imutável
- list
-
comprehension
number_list = list(range(7))
is_even_list = [True if number % 2 == 0 else False for number in number_list]
- string formatting
from datetime import datetime
now = datetime.now().strftime("%b/%d/%Y - %H:%M:%S")
print("date and time: {}".format(now))
Desafio 2: Criar uma lista de strings contendo valores tais como nome 1
, nome 2
, ..., até nome 51
- classes e objetos
python para análise dados
pandas: manipulando seus dados
Uma biblioteca para estruturas de dados tabulares, análise de dados e ferramentas de modelagem de dados, incluindo visualização integrada usando Matplotlib. O Pandas visa ser o bloco de construção fundamental de alto nível para fazer análises práticas de dados do mundo real em Python
import pandas as pd
df = pd.read_excel("file.xlsx", sheet_name="Planilha1")
Comandos utilizados no dia a dia:
- read_csv
-
read_excel
-
info
- describe
- columns
- head and tail
- isna
- value_counts
- loc
-
unique
-
astype
- to_datetime
-
to_numeric
-
sort_values
-
drop_duplicates
-
merge
- groupby
- concat
Desafio 3: Dada a diversificação, criar um novo arquivo com o cálculo do patrimônio por cliente
streamlit: criando uma interface interativa
Em um arquivo python hello.py
escreva o código do streamlit:
import streamlit as st
import numpy as np
st.title("Hello Streamlit")
dataframe = np.random.randn(10, 20)
st.dataframe(dataframe)
No bash, execute o comando:
streamlit run hello.py
Abra o seu navegador no endereço http://localhost:8501
Desafio 4: Criar uma aplicação que receba um arquivo de diversificação via interface do streamlit e exiba na tela uma tabela com o patrimônio agrupado por cliente
Setup de projetos
- Se possível, faça uso de algum framework
- Sempre use o git para versionar seus projetos
- Crie um arquivo README.md com informações sobre o objetivo do seu projeto, seus inputs e outputs
- Crie um arquivo .gitignore para que o git não monitore seus arquivos sensíveis
Boas práticas
- Guia de estilo
- PEP8
- boa parte por ser automatizada com ferramentas de lint, ex: black e isort
- Variáveis de ambiente
- credenciais e dados sensíveis nunca devem estar expostos no código
- Dependências
- criar arquivo requirements.txt no projeto para listar as dependências
- usar ambiente virtual ou docker
- Importância do código limpo
- legibilidade
- manutenção e evolução
- Coesão vs acoplamento
- sempre que possível, modulare seu código por meio de classes e funções
- suas funções devem ser pequenas e realizar uma ação atômica
Indicações de cursos e conteúdos
- Artigo - 10 minutes to pandas
- Artigo - Python3 Hello World
- Formação - Alura Python para Data Science
- Curso - Learn Git & GitHub
- Curso - Codecademy Learn Data Visualization with Python
- Curso - Codecademy Learn Python 3
- Curso - EDX Python Basics for Data Science
- Artigo - Streamlit Get Started
- Artigo - Numpy docstring style guide