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.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Seu ambiente e as ferramentas de engenharia.
Os objetivos desta aula. 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.
Veja o essencial, parte por parte.
O Playground continua sendo o seu campo de treino. O Playground do curso roda Python de verdade no navegador, sem instalar nada.
As duas ferramentas que marcam o nível. Pense no mypy como o corretor ortográfico do seu código: aponta erros de tipo antes de rodar.
Seu primeiro código do avançado. Nada como começar rodando.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
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.