Skip to content

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

  1. Instale as seguintes ferramentas:

    • Python
      • Uma vez que o python foi instalado corretamente, abra um terminal e instale os pacotes a seguir com os comandos especificados:
        • jupyter: pip install jupyter
        • pandas: pip install pandas
        • streamlit: pip install streamlit
    • VS Code
    • Git
  2. (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
  • 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

  • built-in functions

  • collection data structutes

    • list
      • indexada, ordenada, mutável
    • dict
      • chaves/valores
    • set
      • conjunto, não ordenado
    • tuple
      • imutável
  • 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")

Artigo - 10 minutes to pandas

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

  1. Artigo - 10 minutes to pandas
  2. Artigo - Python3 Hello World
  3. Formação - Alura Python para Data Science
  4. Curso - Learn Git & GitHub
  5. Curso - Codecademy Learn Data Visualization with Python
  6. Curso - Codecademy Learn Python 3
  7. Curso - EDX Python Basics for Data Science
  8. Artigo - Streamlit Get Started
  9. Artigo - Numpy docstring style guide