Módulo 1 - Boas-vindas ao Python Avançado

Seu ambiente e as ferramentas de engenharia

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

O que você vai aprender

  • Retomar o Playground do curso e o que ele roda.
  • Conhecer o papel do mypy, o verificador de tipos estáticos.
  • Conhecer o papel do pytest, o framework de testes profissional.
  • Rodar o primeiro código do curso, com type hints.

O Playground continua sendo o seu campo de treino

Você já conhece o Playground das etapas anteriores: um editor no navegador que executa Python de verdade, ideal para praticar em qualquer computador. No avançado ele continua sendo o seu campo de treino principal. Os type hints, por exemplo, rodam normalmente ali, porque o Python os aceita e simplesmente ignora em tempo de execução. O que verifica esses tipos é uma ferramenta separada, o mypy, e é sobre esse papel que vale conversar agora.

def saudacao(nome: str, vezes: int) -> str:
    return (f"Ola, {nome}! " * vezes).strip()

print(saudacao("Ana", 2))  # Ola, Ana! Ola, Ana!

type hints (nome: str, vezes: int, -> str) rodam no Playground; o Python os aceita.

Repare nas anotações: nome: str diz que o parâmetro é um texto, vezes: int que é um número inteiro, e -> str que a função devolve um texto. Para o Python, na hora de rodar, isso é só documentação: ele não impede você de passar o tipo errado. Quem confere de verdade é o mypy, e é por isso que ele existe.

As duas ferramentas que marcam o nível

Duas ferramentas acompanham o avançado do começo ao fim, mesmo que você só as instale no computador nos módulos específicos. A primeira é o mypy. Você roda o mypy sobre o seu código e ele avisa, sem executar nada, quando um tipo não bate: uma função que espera um número recebendo um texto, por exemplo. É como um revisor que lê o código e aponta contradições de contrato antes que elas virem bug. A segunda é o pytest, o framework de testes que profissionais usam. Ele deixa escrever testes como funções comuns, com assert, e roda todos de uma vez, dizendo o que passou e o que falhou.

Você não precisa instalar nada agora. A ideia desta aula é entender o papel de cada ferramenta, porque elas dão sentido a temas do curso inteiro. Quando você declarar tipos no módulo 2, vai saber que existe um mypy conferindo. Quando escrever testes no módulo 13, vai usar o pytest de verdade. Ambos se instalam com pip, exatamente como você aprendeu no Intermediário, e o curso mostra o passo a passo no momento certo.

Seu primeiro código do avançado

Nada como começar rodando. Abra o Playground do curso e digite o programa abaixo. Ele usa type hints para deixar claro o contrato de cada função e o módulo statistics, da biblioteca padrão, para calcular uma média. Repare como os tipos tornam o código autoexplicativo: só de ler a assinatura, você sabe o que entra e o que sai, sem precisar decifrar o corpo.

import statistics

def media_das_notas(notas: list[float]) -> float:
    return statistics.mean(notas)

def aprovado(media: float) -> bool:
    return media >= 7.0

notas = [7.0, 9.0, 6.0, 10.0, 8.0]
m = media_das_notas(notas)
print(f"Media: {m}")
print("Aprovado" if aprovado(m) else "Recuperacao")

type hints deixam o contrato explícito: list[float] entra, float ou bool sai.

Rode e observe. O programa faz o que qualquer versão faria, mas as assinaturas media_das_notas(notas: list[float]) -> float e aprovado(media: float) -> bool contam a história inteira sem comentários. É esse tipo de clareza verificável que o avançado busca. Com o ambiente pronto e o Playground funcionando, o módulo 2 mergulha de vez na tipagem estática, o primeiro pilar da engenharia em Python.

Teste rápido

No Playground, o que acontece se você passar um texto onde a função espera list[float]?

Perguntas frequentes

O Playground do avançado é diferente das etapas anteriores?
É o mesmo Playground, com o mesmo Python real no navegador, acompanhando os temas do avançado. Os type hints rodam ali normalmente. As ferramentas de verificação e teste, mypy e pytest, você instala no computador nos módulos específicos, e o curso ensina o passo a passo.
Preciso instalar mypy e pytest para começar?
Não para começar. A maioria dos exercícios roda no Playground. Você instala o mypy no módulo de tipagem e o pytest no módulo de testes, ambos com pip, como aprendeu no Intermediário. Nesta aula, o objetivo é só entender o papel de cada um.
Se o Python ignora os type hints, para que serve declará-los?
Para duas coisas. Primeiro, documentam o contrato da função de um jeito que a pessoa e o editor entendem na hora. Segundo, permitem que o mypy verifique a coerência dos tipos antes de rodar, apontando erros que passariam despercebidos. Clareza e verificação, sem custo em tempo de execução.
O que é uma assinatura de função?
É a primeira linha da função, com o nome, os parâmetros e, no avançado, os tipos: def media_das_notas(notas: list[float]) -> float. Ela resume o contrato, o que entra e o que sai, e boa parte do avançado é deixar essa assinatura clara e verificável.
Posso fazer o curso inteiro só no Playground?
Quase todo. A maioria esmagadora dos exercícios roda no Playground, porque usa a linguagem e a biblioteca padrão. Só os módulos de tipagem, testes e empacotamento rendem mais no computador, já que envolvem rodar ferramentas como mypy, pytest e o empacotador.
list[float] com colchetes é novidade do avançado?
A escrita list[float], que diz uma lista de números decimais, é um type hint. A lista você já conhece; a novidade é anotar o tipo dos itens dela. O módulo 2 detalha essa notação, incluindo dict, Optional e outros, com calma.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.