---
title: "Simulador de Entrevista Python: Perguntas para Praticar"
url: "https://python.dev.br/carreira/simulador-entrevista-python/"
markdown_url: "https://python.dev.br/carreira/simulador-entrevista-python.MD"
description: "Pratique entrevista Python com um roteiro em português: perguntas rápidas, desafios de código, critérios de resposta e plano de estudo para vagas no Brasil."
date: "2026-06-04"
author: "Equipe Python Brasil"
---

# Simulador de Entrevista Python: Perguntas para Praticar

Pratique entrevista Python com um roteiro em português: perguntas rápidas, desafios de código, critérios de resposta e plano de estudo para vagas no Brasil.


Um simulador de entrevista Python ajuda a transformar estudo passivo em prática. Ler respostas prontas é útil, mas entrevista técnica exige outra habilidade: pensar em voz alta, fazer perguntas quando o enunciado é ambíguo, escrever código sob pressão moderada e explicar por que sua solução é suficiente para aquele contexto.

Este roteiro foi pensado para quem está buscando vaga júnior, estágio ou primeira vaga plena no Brasil. Ele complementa o guia de [perguntas de entrevista Python](/carreira/entrevistas-python/), o checklist de [teste técnico Python](/carreira/teste-tecnico-python/) e o [roadmap Python 2026](/carreira/roadmap-python-2026/). Use como treino semanal antes de se candidatar em massa pela página de [vagas Python](/vagas/).

## Como usar este simulador

Reserve 45 a 60 minutos. Não tente fazer tudo olhando documentação ou IA. A ideia é descobrir o que você consegue explicar agora.

Formato recomendado:

1. 5 minutos para apresentação pessoal;
2. 15 minutos para perguntas rápidas de fundamentos;
3. 20 minutos para um desafio de código;
4. 10 minutos para explicar um projeto do portfólio;
5. 5 minutos para retrospectiva e plano de estudo.

Se estiver treinando com outra pessoa, peça para ela interromper com perguntas de clareza: "por que você escolheu isso?", "qual caso quebra?", "como testaria?". Se estiver sozinho, grave áudio ou tela. O desconforto inicial é parte do treino.

## Bloco 1: apresentação em 90 segundos

Responda sem ler:

> "Conte rapidamente sua trajetória e por que você está buscando uma vaga com Python."

Uma boa resposta para vaga júnior costuma ter quatro partes:

- contexto atual: estudo, transição, faculdade, trabalho anterior ou área de interesse;
- foco técnico: backend, dados, automação, QA ou IA aplicada;
- evidência: projeto, curso, contribuição, script real, dashboard ou API;
- próximo passo: tipo de vaga que procura e como quer evoluir.

Exemplo de estrutura, não para copiar literalmente:

```text
Eu venho estudando Python com foco em backend e automação. Nos últimos meses montei uma API com FastAPI, PostgreSQL e testes com pytest, além de um script que organiza planilhas CSV. Estou buscando uma vaga júnior onde eu possa trabalhar com APIs, dados e melhoria de processos internos. Meu próximo foco é ganhar mais prática com deploy, observabilidade e código revisado por pessoas mais experientes.
```

Evite uma resposta genérica como "gosto muito de tecnologia" sem evidência. Entrevistador precisa lembrar do seu perfil depois da conversa.

## Bloco 2: perguntas rápidas de fundamentos

Responda cada uma em até dois minutos. Se travar, marque para estudar depois.

### 1. Quando você usaria lista, tupla, conjunto e dicionário?

Critério de boa resposta:

- lista para sequência mutável;
- tupla para grupo fixo de valores;
- conjunto para unicidade e operações de pertencimento;
- dicionário para relação chave-valor.

Exemplo curto:

```python
nomes = ["Ana", "Bia", "Caio"]
ponto = (-23.55, -46.63)
cpfs_unicos = {"111", "222"}
usuario_por_id = {1: "Ana", 2: "Bia"}
```

### 2. Qual a diferença entre `==` e `is`?

`==` compara valor. `is` compara identidade do objeto em memória. Em entrevista, mostre um exemplo com listas, porque ele revela o conceito melhor que strings pequenas.

```python
a = [1, 2]
b = [1, 2]
c = a

print(a == b)  # True
print(a is b)  # False
print(a is c)  # True
```

### 3. Como você trataria erro ao consumir uma API?

Uma resposta forte menciona timeout, status HTTP, exceções de rede, validação de resposta e log. Não diga apenas "uso try/except".

```python
import requests


def buscar_cep(cep: str) -> dict:
    try:
        resposta = requests.get(f"https://viacep.com.br/ws/{cep}/json/", timeout=5)
        resposta.raise_for_status()
    except requests.RequestException as exc:
        raise RuntimeError("falha ao consultar CEP") from exc

    dados = resposta.json()
    if dados.get("erro"):
        raise ValueError("CEP nao encontrado")
    return dados
```

### 4. O que é ambiente virtual e por que usar?

Ambiente virtual isola dependências por projeto. Ele evita que um pacote instalado para um projeto quebre outro. Para vagas brasileiras, também é bom mencionar que o README deve ensinar a criar e ativar o ambiente.

### 5. O que torna um projeto Python fácil de avaliar?

Procure responder com experiência do avaliador:

- README curto e executável;
- versão do Python explícita;
- dependências declaradas;
- comando de teste;
- dados de exemplo;
- decisões e limitações documentadas.

Esse ponto conecta entrevista com [teste técnico Python](/carreira/teste-tecnico-python/).

## Bloco 3: desafio de código ao vivo

Escolha um dos exercícios abaixo e resolva em até 20 minutos. O objetivo não é escrever a solução mais esperta. O objetivo é chegar em uma solução correta, legível e explicável.

### Desafio A: contar tecnologias em vagas

Você recebeu uma lista de descrições de vagas. Conte quantas vezes cada tecnologia aparece, ignorando maiúsculas e minúsculas.

Entrada:

```python
vagas = [
    "Python, SQL, FastAPI e Docker",
    "Python, Pandas, SQL e Power BI",
    "Django, PostgreSQL, Docker e Python",
]
tecnologias = ["python", "sql", "docker", "fastapi", "django", "pandas"]
```

Uma solução simples:

```python
def contar_tecnologias(vagas: list[str], tecnologias: list[str]) -> dict[str, int]:
    contagem = {tecnologia: 0 for tecnologia in tecnologias}

    for vaga in vagas:
        texto = vaga.lower()
        for tecnologia in tecnologias:
            if tecnologia.lower() in texto:
                contagem[tecnologia] += 1

    return contagem
```

Explique limitações: essa versão pode contar substring indevida em alguns casos. Para produção, você poderia tokenizar melhor o texto, normalizar acentos e criar aliases como `postgres` e `postgresql`.

### Desafio B: validar lançamentos financeiros

Você recebeu lançamentos de uma planilha. Retorne apenas os válidos: valor positivo, categoria preenchida e data no formato `AAAA-MM-DD`.

```python
from datetime import datetime


def lancamento_valido(item: dict) -> bool:
    if item.get("valor", 0) <= 0:
        return False
    if not item.get("categoria"):
        return False
    try:
        datetime.strptime(item["data"], "%Y-%m-%d")
    except (KeyError, ValueError):
        return False
    return True


def filtrar_lancamentos(lancamentos: list[dict]) -> list[dict]:
    return [item for item in lancamentos if lancamento_valido(item)]
```

Explique como testaria: valor zero, valor negativo, categoria vazia, data inválida, chave ausente e um caso válido.

## Bloco 4: explicando seu portfólio

Escolha um projeto e responda:

1. que problema ele resolve;
2. quem usaria;
3. quais entradas e saídas existem;
4. por que escolheu essa stack;
5. que erro você tratou;
6. como roda localmente;
7. como testou;
8. o que melhoraria com mais tempo.

Se você não consegue responder isso sobre seu próprio projeto, antes de aplicar para novas vagas revise o README e reduza escopo. Um projeto pequeno bem explicado costuma vencer um projeto grande que ninguém consegue rodar.

## Rubrica de autoavaliação

Depois do treino, dê uma nota de 0 a 2 para cada item.

| Item | 0 ponto | 1 ponto | 2 pontos |
|---|---|---|---|
| Clareza | resposta confusa | respondeu com ajuda | explicou direto |
| Fundamentos | errou conceitos básicos | acertou parte | acertou e deu exemplo |
| Código | não terminou | terminou com bugs | terminou e explicou trade-offs |
| Testes | não mencionou | citou genericamente | nomeou casos concretos |
| Portfólio | não soube explicar | explicou parcialmente | conectou problema, stack e resultado |

Se a soma ficou abaixo de 6, pratique fundamentos antes de se candidatar para muitas vagas. Se ficou entre 6 e 8, foque em projetos e testes. Se ficou acima de 8, comece a aplicar e use entrevistas reais como feedback.

## Plano de estudo depois da simulação

Transforme cada falha em uma tarefa pequena:

- travou em estruturas de dados: revise [listas](/glossario/lista/), [tuplas](/glossario/tupla/) e [dicionários](/glossario/dicionario/);
- travou em erros: pratique [try/except](/glossario/try-except/) com APIs e arquivos;
- travou em testes: faça o guia de [testes com pytest](/guias/testes-com-pytest/);
- travou em projeto: escolha uma ideia em [projetos de portfólio Python](/carreira/projetos-portfolio-python/);
- travou em candidatura: revise o [currículo Python para vaga júnior](/carreira/curriculo-python-vaga-junior/).

Repita o simulador uma vez por semana. A meta não é soar perfeito. A meta é diminuir surpresa: quando a entrevista real chegar, você já terá explicado seus projetos, escrito código simples sob tempo e reconhecido os pontos que precisa estudar.
