Introdução
Python na Prática
Do primeiro script à API em produção, em três níveis, com projetos integradores e um arquivo executável por capítulo.
Para quem é este material
Eu organizei estas notas em seis partes. A primeira prepara a máquina. As três seguintes seguem a progressão que eu uso quando ensino ou quando integro alguém a um time: primeiro a linguagem, depois o código que outras pessoas conseguem manter, e por fim o que sustenta um sistema em produção. A quinta leva isso a um backend de verdade, e a sexta reúne tudo em três projetos que você constrói do começo ao fim.
| Parte | Para quem | O que você sabe fazer no final |
|---|---|---|
| Ambiente | Quem vai instalar Python hoje, em qualquer sistema | Instalar versões, criar ambientes isolados e escolher entre pip, pipx, Poetry e uv |
| Básico | Quem está começando ou precisa consolidar as bases | Escrever scripts corretos com funções, estruturas de dados, exceções, arquivos e módulos |
| Intermediário | Quem já escreve scripts e quer escrever código de equipe | Modelar com classes, usar geradores e decoradores, tipar, testar, registrar logs e criar uma CLI |
| Avançado | Quem mantém código em produção | Dominar o modelo de dados, a concorrência, o desempenho, o empacotamento e a qualidade automatizada |
| Backend | Quem vai construir serviços | Consumir e projetar APIs REST, usar FastAPI, PostgreSQL, SQLAlchemy, Alembic, Docker e observabilidade |
| Projetos | Quem quer provar que aprendeu | Entregar três projetos completos, um por nível, com testes e verificações automáticas |
Se você nunca programou, comece pela parte Ambiente e siga a ordem. Se já programa em outra linguagem, leia os capítulos de ambiente e o de mutabilidade e identidade, e depois pule para onde sentir lacuna. Os projetos da última parte dizem, em cada um, depois de qual capítulo fazê-los.
Como cada capítulo funciona
Todo capítulo segue o mesmo desenho: uma explicação curta, um trecho de código e, quando o código imprime algo, a saída real dele. Cada bloco de código mostra, no topo, o arquivo e as linhas do repositório onde ele está. Assim você nunca precisa adivinhar onde está o código que acabou de ler.
Três detalhes que fazem diferença:
- A saída é real. Eu executei cada capítulo e copiei o que o Python imprimiu. Quando o resultado depende da sua máquina (versão, caminho, sistema), o bloco diz que é um exemplo.
- Os exercícios têm solução. Tente primeiro. A solução fica recolhida e termina com
assert, então você descobre sozinho se acertou. - As abas lembram o seu sistema. Nas instruções de instalação, escolha macOS, Windows ou Linux uma vez e o curso troca todas as abas de uma vez.
Como rodar o código
O repositório tem uma pasta por parte e um arquivo por capítulo, com o nome capNN_assunto.py.
python-notes/
README.md
pyproject.toml
docs/
python-notes.html
ambiente/
cap01_como_executa.py
...
basico/
cap09_variaveis.py
...
intermediario/
cap26_classes.py
...
avancado/
cap42_modelo_dados.py
...
backend/
cap52_http_apis.py
...
projetos/
despesas/
tarefas/
processador/
exemplos/
api_pedidos/
pacote/
uv/
Cada arquivo roda sozinho, a partir da raiz do repositório:
python3 basico/cap09_variaveis.py
No Windows, troque python3 por py. Quando você tiver o uv instalado (capítulo 7), a forma mais curta é uv run basico/cap09_variaveis.py.
Alguns arquivos pedem a sua participação
Capítulos que usam
input()esperam que você digite. Os que gravam arquivos criam esses arquivos na pasta onde você executou o comando, e o.gitignoredo repositório já os ignora. Os capítulos de concorrência usam vários processos e por isso protegem a execução comif __name__ == "__main__".
Qual versão do Python este curso assume
O piso é o Python 3.12. Quando escrevi, a série estável mais recente era a 3.14, e a 3.15 estava programada para o início de outubro de 2026. O Python 3.10 chega ao fim do suporte em outubro de 2026, e é por isso que eu não uso nada abaixo do 3.12.
Quando um recurso depende de versão, o texto diz qual. Exemplos: match (3.10), tomllib (3.11), TaskGroup e except* (3.11), a sintaxe class Pilha[T] (3.12) e a avaliação adiada de anotações (3.14).
Como eu recomendo estudar
Digite o código em vez de copiar. Rode. Depois quebre de propósito: troque um tipo, apague um parêntese, passe um valor inesperado e leia a mensagem de erro com calma. Quem aprende a ler traceback aprende Python duas vezes mais rápido.
Use a busca na lateral (a tecla / abre o campo) para voltar a um assunto sem rolar a página inteira.