Perguntas de entrevista de Python, com respostas que você pode executar
As entrevistas de Python misturam alguns aquecimentos de programação com perguntas sobre como a linguagem se comporta. Estas são as que mais aparecem. Cada exemplo abaixo foi executado, e a saída mostrada é exata, então você pode confiar nela ao explicar em voz alta.
Inverter uma string
Um fatiamento com passo de -1 percorre a string de trás para frente. Funciona em qualquer sequência, inclusive em listas.
print("python"[::-1])Saída:
nohtyp
Uma lista contém duplicatas?
Um set guarda cada valor uma única vez. Se o set for menor que a lista, algum valor se repetiu. Diga o custo em voz alta: é uma única passagem, e os itens precisam ser hasheáveis.
numbers = [1, 2, 3, 2, 1] print(len(numbers) != len(set(numbers)))
Saída:
True
Duas palavras são anagramas?
Duas palavras são anagramas quando suas letras, em ordem, são iguais.
print(sorted("listen") == sorted("silent"))Saída:
True
Listas versus tuplas
Listas podem mudar depois de criadas, tuplas não. Tuplas são usadas para grupos fixos, como um ponto, e como não podem mudar, podem ser chaves de dicionário.
point = (3, 4)
try:
point[0] = 9
except TypeError:
print("tuples cannot change")Saída:
tuples cannot change
is versus ==
== pergunta se dois valores são iguais. is pergunta se são exatamente o mesmo objeto na memória. Duas listas separadas com o mesmo conteúdo são iguais, mas não são o mesmo objeto.
a = [1, 2] b = [1, 2] print(a == b) print(a is b)
Saída:
True False
A armadilha do argumento padrão mutável
Um valor padrão é criado uma única vez, quando a função é definida, e não a cada chamada. Com uma lista como padrão, todas as chamadas compartilham a mesma lista. Esta é a pegadinha mais famosa do Python.
def add_item(item, items=[]):
items.append(item)
return items
print(add_item("a"))
print(add_item("b"))Saída:
['a'] ['a', 'b']
A correção: use None
Use None como padrão e crie a lista dentro da função. Assim, cada chamada começa do zero.
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item("a"))
print(add_item("b"))Saída:
['a'] ['b']
Perguntas comuns
- Quais tópicos de Python as entrevistas mais cobram?
- Strings, listas, dicionários e sets para o aquecimento de programação, depois funções, erros, classes e como os tipos mutáveis e imutáveis se comportam. Conheça o custo das operações mais comuns e explique sua escolha de estrutura de dados.
- Devo decorar as soluções?
- Entenda a ideia por trás de cada uma. Se você conseguir explicar por que um set encontra duplicatas em uma única passagem, saberá resolver a próxima variação que nunca viu.
- Como posso praticar a explicação da minha resposta?
- Execute cada exemplo e, antes de ler a explicação, diga em voz alta o que ele imprime e por quê. Os entrevistadores se importam com o seu raciocínio tanto quanto com o código.