Pular para o conteúdo

    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.

    Por Alexsander Valente

    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.

    PartePara quemO que você sabe fazer no final
    AmbienteQuem vai instalar Python hoje, em qualquer sistemaInstalar versões, criar ambientes isolados e escolher entre pip, pipx, Poetry e uv
    BásicoQuem está começando ou precisa consolidar as basesEscrever scripts corretos com funções, estruturas de dados, exceções, arquivos e módulos
    IntermediárioQuem já escreve scripts e quer escrever código de equipeModelar com classes, usar geradores e decoradores, tipar, testar, registrar logs e criar uma CLI
    AvançadoQuem mantém código em produçãoDominar o modelo de dados, a concorrência, o desempenho, o empacotamento e a qualidade automatizada
    BackendQuem vai construir serviçosConsumir e projetar APIs REST, usar FastAPI, PostgreSQL, SQLAlchemy, Alembic, Docker e observabilidade
    ProjetosQuem quer provar que aprendeuEntregar 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.

    Estrutura do repositório
    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:

    Terminal
    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 .gitignore do repositório já os ignora. Os capítulos de concorrência usam vários processos e por isso protegem a execução com if __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.