P
prepair.app
Começar entrevista →
EnglishУкраїнськаРусскийDeutsch
🐍

Junior Python BackendPerguntas de entrevista Python backend

Junior · sem experiência / menos de 1 ano

Entrevistas de Python backend cobrem detalhes internos da linguagem, programação assíncrona, Django ou FastAPI, e padrões de acesso a banco de dados. Abaixo estão as perguntas mais comuns com respostas modelo. Junior: teoria básica, definições e casos práticos simples.

Experimente — sem necessidade de conta
Preparando sua pergunta…

Temas para se preparar

Tipos e estruturas de dados
Decorators e generators
GIL e concorrência
asyncio e async/await
Django / FastAPI
ORM e otimização de SQL

7 perguntas de nível Junior com respostas

1

Qual é a diferença entre uma lista e uma tupla, e quando isso importa?

Resposta

Listas são mutáveis, tuplas não, e a consequência que as pessoas esquecem é que a imutabilidade torna as tuplas hasheáveis — então uma tupla pode ser chave de dicionário e uma lista não. Use uma tupla quando o tamanho e o significado de cada posição são fixos, como uma coordenada ou uma linha de banco de dados, e uma lista quando você está coletando itens do mesmo tipo. Uma tupla também sinaliza intenção: diz ao leitor que ninguém vai dar append nisso.

2

O que acontece se você usar um objeto mutável como argumento default?

Resposta

O default é avaliado uma vez, quando a função é definida, não a cada chamada — então um default de lista ou dict é compartilhado entre todas as chamadas e acumula estado entre elas. A solução é usar None como default e construir o objeto dentro do corpo da função. Esse é o bug de Python mais comum que sobrevive a um code review, porque a função parece correta quando olhada isoladamente.

3

Qual é a diferença entre is e ==?

Resposta

== pergunta se dois objetos têm o mesmo valor; is pergunta se são o mesmo objeto na memória. Eles coincidem por acidente para inteiros pequenos e strings curtas porque o CPython os cacheia, por isso o erro passa despercebido até um valor crescer além do cache. A regra na prática: use is só para None, True e False, e == para tudo o resto.

4

Explique como um dicionário encontra uma chave.

Resposta

Ele faz o hash da chave para escolher um bucket, depois compara por igualdade para resolver colisões dentro daquele bucket. Duas consequências decorrem disso: a chave precisa ser hasheável, por isso uma lista não pode ser uma; e se você sobrescrever __eq__ numa classe, precisa sobrescrever __hash__ também, ou instâncias que comparam iguais vão cair em buckets diferentes e se comportar errado em sets e dicts.

5

Qual é a diferença entre uma list comprehension e uma generator expression?

Resposta

Uma comprehension entre colchetes constrói a lista inteira na memória imediatamente; a mesma expressão entre parênteses retorna um generator que produz elementos um de cada vez. Para um milhão de linhas, a primeira aloca um milhão de objetos e a segunda aloca um de cada vez. Use o generator quando você itera uma vez, e a comprehension quando precisa do resultado mais de uma vez ou precisa do seu tamanho.

6

O que cada um de try / except / else / finally faz?

Resposta

try contém o código arriscado, except trata uma exceção específica, else roda só se nada foi lançado, e finally roda em qualquer caso e é onde entra a limpeza. O else existe para manter o bloco try o menor possível — código que não pode falhar não pertence ali, porque um except amplo acabaria engolindo erros de linhas que você nunca quis proteger.

7

O que *args e **kwargs fazem?

Resposta

*args coleta argumentos posicionais extras numa tupla, **kwargs coleta argumentos nomeados extras num dict. São o que permite um wrapper aceitar qualquer assinatura e repassá-la sem alterações, por isso todo decorator que você escrever vai usá-los. Abusar deles em funções comuns esconde a assinatura real de quem lê o código e dos type checkers.

🦎

Só ler as respostas não basta

Numa entrevista de verdade você fala sob pressão. O Cam faz essas mesmas perguntas, avalia cada resposta e mostra exatamente o que melhorar.

Praticar entrevista de Junior Python Backend →
Grátis · 3 entrevistas por mês

Outros níveis — Python Backend

Middle Python BackendSenior Python BackendTodas as perguntas de Python Backend

Outras especializações

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐘Junior PHP Backend🦫Junior Go Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript⚛️Junior React Frontend