42 perguntas e respostas de entrevista em Python em tempo real [2022]

Você está se preparando para entrevistas em Python? Ou apenas curioso para saber o quanto Python você conhece? Sem problemas. Aqui cobrimos seus problemas com perguntas e respostas.

O artigo irá ajudá-lo a entender que tipo de pergunta você pode enfrentar em entrevistas. Ou ajuda você a avaliar suas habilidades em Python. Certifique-se de responder às perguntas antes de ver as respostas para avaliar a si mesmo com precisão. Sem mais delongas, vamos às perguntas.

As perguntas são divididas em diferentes seções com base no tipo de tópicos. Cada seção tem perguntas junto com respostas selecionadas. Você pode modificar a resposta com seu próprio idioma com o mesmo significado. Assim, o entrevistador não sentirá que você está lendo alguma coisa.

últimas postagens

Linguagem Python

#1. O que é Python?

Python é uma linguagem de programação interpretada de alto nível e de propósito geral. Podemos construir quase qualquer tipo de aplicativo usando Python com bibliotecas e estruturas de terceiros. Python é uma das linguagens de programação mais populares em tecnologias avançadas como IA, Data Science, etc.

#2. Qual é a principal diferença entre um interpretador e um compilador?

O interpretador traduz uma instrução de cada vez em código de máquina, enquanto o compilador traduz todo o código de cada vez em código de máquina.

#3. O Python é uma linguagem tipada estaticamente ou dinamicamente?

Python é uma linguagem tipada dinamicamente.

#4. O que você quer dizer com linguagem tipada dinamicamente?

As linguagens tipadas dinamicamente verificam os tipos de variáveis ​​em tempo de execução. Algumas linguagens tipadas dinamicamente são Python, JavaScript, Ruby, etc.

Bônus: Linguagens tipadas estaticamente verificam os tipos de variáveis ​​em tempo de compilação. Algumas linguagens de tipagem estática são C++, C, Java, etc.,

#5. Dê algumas aplicações de Python.

Python tem uma sintaxe mais simples e fácil de aprender. Pode parecer semelhante ao inglês. A comunidade de desenvolvedores para Python é enorme. Podemos encontrar muitos pacotes de terceiros para trabalhar com diferentes tipos de desenvolvimento de aplicativos. Quando se trata de desenvolvimento, podemos criar aplicações web, aplicações GUI, aplicações CLI, etc.,

Uma das aplicações mais populares do Python é a automação. Podemos facilmente criar scripts em Python para automatizar tarefas como limpeza de disco, envio de e-mails, obtenção de dados sobre preços de produtos, etc.,

Python é uma das linguagens mais populares para uso no campo da Ciência de Dados.

#6. Quais aplicativos você construiu usando Python?

Eu escrevi vários scripts de automação para eliminar tarefas repetitivas e chatas. E scripts para obter informações sobre preços de produtos, disponibilidade, etc.

  Como visualizar a Central de Notificações no iPhone e iPad

Também trabalhei com frameworks como Django, Flask para construir aplicações web. E construa algumas aplicações web usando Django e Flask.

Nota: A resposta acima é um exemplo. Sua resposta pode ser completamente diferente da anterior. Tente explicar diferentes áreas nas quais você trabalhou usando Python. Mostre os aplicativos se estiverem disponíveis.

Tipos de dados

#7. Quais são os tipos de dados integrados em Python?

Existem vários tipos de dados internos em Python. Eles são int, float, complex, bool, list, tuple, set, dict, str.

Observação: você não precisa informar todos os tipos de dados presentes no Python. Mencione alguns deles que você mais usa. O entrevistador pode fazer perguntas com base na sua resposta.

#8. Qual é a diferença entre lista e tupla?

Tanto a lista quanto a tupla são usadas para armazenar a coleção de objetos. A principal diferença entre a lista e a tupla é “a lista é um objeto mutável, enquanto a tupla é um objeto imutável”.

#9. O que são tipos de dados mutáveis ​​e imutáveis?

Os tipos de dados mutáveis ​​podem ser alterados após criá-los. Alguns dos objetos mutáveis ​​em Python são list, set, dict.

Os tipos de dados imutáveis ​​não podem ser alterados após criá-los. Alguns dos objetos imutáveis ​​em Python são str, tuple.

#10. Explique alguns métodos da lista.

1. append – o método é usado para adicionar um elemento à lista. Ele adiciona o elemento ao final da lista.

>>> a = [1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]

2. pop – o método é usado para remover um elemento da lista. Ele removerá o último elemento se não fornecermos nenhum índice como argumento ou removerá o elemento no índice se fornecermos um argumento.

>>> a = [1, 2, 3, 4, 5]
>>> a.pop()
5
>>> a
[1, 2, 3, 4]
>>> a.pop(1)
2
>>> a
[1, 3, 4]

3. remove – o método é usado para remover um elemento da lista. Precisamos fornecer o elemento como um argumento que queremos remover da lista. Ele remove a primeira ocorrência do elemento da lista.

>>> a = [1, 2, 2, 3, 4]
>>> a = [1, 2, 3, 2, 4]
>>> a.remove(1)
>>> a
[2, 3, 2, 4]
>>> a.remove(2)
>>> a
[3, 2, 4]

4. sort – o método usado para ordenar a lista em ordem crescente ou decrescente.

>>> a = [3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]

5. reverse – o método é usado para reverter os elementos da lista.

>>> a = [3, 2, 4, 1]
>>> a.reverse()
>>> a
[1, 4, 2, 3]

Nota: Existem outros métodos como limpar, inserir, contar, etc… Você não precisa explicar todos os métodos da lista para o entrevistador. Apenas explique dois ou três métodos que você mais usa.

#11. Explique alguns métodos de string

1. split – o método é usado para dividir a string nos pontos desejados. Ele retorna a lista como resultado. Por padrão, ele divide a string em espaços. Podemos fornecer o delimitador como um argumento para o método.

>>> a = "This is etechpt.com"
>>> a.split()
['This', 'is', 'Geekflare']
>>> a = "1, 2, 3, 4, 5, 6"
>>> a.split(", ")
['1', '2', '3', '4', '5', '6']

2. join – o método é usado para combinar a lista de objetos string. Ele combina os objetos string com o delimitador que fornecemos.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is etechpt.com'
>>> ', '.join(a)
'This, is, etechpt.com'

Nota: Alguns outros métodos de strings são: capitalize, isalnum, isalpha, isdigit, lower, upper, center, etc.,

#12. Qual é a indexação negativa em listas?

O índice é usado para acessar o elemento das listas. A indexação normal da lista começa em 0.

Semelhante à indexação normal, a indexação negativa também é usada para acessar os elementos das listas. Mas, a indexação negativa nos permite acessar o índice do final da lista. O início da indexação negativa é -1. E continua aumentando como -2, -3, -4, etc., até o comprimento da lista.

>>> a = [1, 2, 3, 4, 5]
>>> a[-1]
5
>>> a[-3]
3
>>> a[-5]
1

#13. Explique alguns métodos de dict

1. items – o método retorna key: value pares de dicionários como uma lista de tuplas.

>>> a = {1: 'etechpt.com', 2: 'etechpt.com Tools', 3: 'etechpt.com Online Compiler'}
>>> a.items()
dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])

2. pop – o método é usado para remover o par chave:valor do dicionário. Ele aceita a chave como argumento e a remove do dicionário.

>>> a = {1: 2, 2: 3}
>>> a.pop(2)
3
>>> a
{1: 2}

Nota: Alguns outros métodos de dict são: get, keys, values, clear, etc.

#14. O que é fatiar em Python?

O fatiamento é usado para acessar o subarray de um tipo de dados de sequência. Ele retorna os dados do tipo de dados de sequência com base nos argumentos que fornecemos. Ele retorna o mesmo tipo de dados que o tipo de dados de origem.

O fatiamento aceita três argumentos. Eles são o índice inicial, o índice final e a etapa de incremento. A sintaxe de fatiamento é variável[start:end:step]. Os argumentos não são obrigatórios para fatiar. Você pode especificar dois pontos vazios (:) que retornam os dados inteiros como resultado.

>>> a = [1, 2, 3, 4, 5]
>>> a[:]
[1, 2, 3, 4, 5]
>>> a[:3]
[1, 2, 3]
>>> a[3:]
[4, 5]
>>> a[0:5:2]
[1, 3, 5]

#15. Quais tipos de dados permitem fatiar?

Podemos usar o fatiamento dos tipos de dados list, tuple e str.

  Troque cumprimentos inspirados em Breaking Bad com o novo aplicativo de Aaron Paul

#16. O que são operadores de descompactação em Python? Como usá-los?

Os operadores * e ** são operadores de descompactação em Python.

O operador * unpacking é usado para atribuir vários valores a diferentes valores de cada vez a partir de tipos de dados de sequência.

>>> items = [1, 2, 3]
>>> a, b, c = items
>>> a
1
>>> b
2
>>> c
3
>>> a, *b = items
>>> a
1
>>> b
[2, 3]

O operador ** unpacking é usado com tipos de dados dict. A descompactação em dicionários não funciona como a descompactação com tipos de dados de sequência.

A descompactação em dicionários é usada principalmente para copiar itens de chave: valor de um dicionário para outro.

>>> a = {1:2, 3:4}
>>> b = {**a}
>>> b
{1: 2, 3: 4}
>>> c = {3:5, 5:6}
>>> b = {**a, **c}
>>> b
{1: 2, 3: 5, 5: 6}

Observação: você pode consultar este artigo para obter mais informações sobre esses operadores.

Condições e Loops

#17. O Python tem instruções switch?

Não, Python não tem comandos switch.

#18. Como você implementa a funcionalidade de instruções switch em Python?

Podemos implementar a funcionalidade de instruções switch usando instruções if e elif.

>>> if a == 1:
...     print(...)
... elif a == 2:
...     print(....)

#19. O que são instruções break e continue?

break – a instrução break é usada para encerrar o loop em execução. A execução do código saltará para fora do loop de interrupção.

>>> for i in range(5):
...     if i == 3:
...             break
...     print(i)
...
0
1
2

continue – a instrução continue é usada para pular a execução do código restante. O código após a instrução continue não é executado na iteração atual e a execução vai para a próxima iteração.

>>> for i in range(5):
...     if i == 3:
...             continue
...     print(i)
...
0
1
2
4

#20. Quando o código em else é executado com loops while e for?

O código dentro do bloco else com loops while e for é executado após a execução de todas as iterações. E o código dentro do bloco else não é executado quando quebramos os loops.

#21. O que são compreensões de lista e dicionário?

As compreensões de lista e dicionário são açúcar sintático para os loops for.

>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = {i: i + 1 for i in range(10)}
>>> a
{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}
>>>

#22. Como funciona a função de intervalo?

A função de intervalo retorna a sequência de números entre o início e a parada com um incremento de etapa. A sintaxe da função range é range(start, stop[, step]).

O argumento stop é obrigatório. Os argumentos start e step são opcionais. O valor padrão de start e step são 0 e 1, respectivamente.

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>>

Funções

#23. Quais são os parâmetros e argumentos?

Os parâmetros são os nomes listados na definição da função.

Argumentos são os valores passados ​​para a função durante a invocação.

#24. Quais são os diferentes tipos de argumentos em Python?

Existem basicamente quatro tipos de argumentos. Eles são argumentos posicionais, argumentos padrão, argumentos de palavras-chave e argumentos arbitrários.

Argumentos posicionais: os argumentos normais que definimos em funções definidas pelo usuário são chamados de argumentos posicionais. Todos os argumentos posicionais são necessários ao invocar a função.

>>> def add(a, b):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() missing 1 required positional argument: 'b'
>>>

Argumentos padrão: podemos fornecer o valor para os argumentos na própria definição da função como valor padrão. Quando o usuário não passou o valor, a função irá considerar o valor padrão.

>>> def add(a, b=3):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
4

Argumentos de palavras-chave: podemos especificar o nome dos argumentos ao invocar a função e atribuir valores a eles. Os argumentos da palavra-chave nos ajudam a evitar a ordenação que é obrigatória em argumentos posicionais.

>>> def add(a, b):
...     print("a ", a)
...     print("b ", b)
...     return a + b
...
>>> add(b=4, a=2)
a  2
b  4
6

Argumentos arbitrários: usamos argumentos arbitrários para coletar um monte de valores em um momento em que não sabemos o número de argumentos que a função receberá. Nós * e ** operadores na definição da função para coletar os argumentos.

>>> def add(*args):
...     return sum(args)
...
>>> add(1, 2, 3, 4, 5)
15
>>> def dict_args(**kwargs):
...     print(kwargs)
...
>>> dict_args(a="etechpt.com", b='etechpt.com Tools', c="etechpt.com Online Compiler")
{'a': 'etechpt.com', 'b': 'etechpt.com Tools', 'c': 'etechpt.com Online Compiler'}

#25. O que é a função lambda?

As funções lambda são pequenas funções anônimas em Python. Possui expressões únicas e aceita múltiplos argumentos.

>>> add = lambda a, b: a + b
>>> add(1, 3)
4

#26. Qual é a diferença entre função normal e função lambda?

A funcionalidade de ambas as funções normais e funções lambda são semelhantes. Mas, precisamos escrever algum código extra em funções normais em comparação com funções lambda para a mesma funcionalidade.

  Bloqueie uma reunião para manter os usuários indesejados afastados

As funções lambda são úteis quando há uma única expressão.

#27. Para que serve a palavra-chave pass?

A palavra-chave pass é usada para mencionar um bloco vazio no código. Python não nos permite deixar os blocos sem nenhum código. Assim, a instrução pass nos permite definir blocos vazios (quando decidimos preencher o código posteriormente).

>>> def add(*args):
...
...
  File "<stdin>", line 3

    ^
IndentationError: expected an indented block
>>> def add(*args):
...     pass
...
>>>

#28. O que é uma função recursiva?

A própria função que chama é chamada de função recursiva.

O que são operadores de empacotamento em Python? Como usá-los?

Os operadores de empacotamento são usados ​​para coletar vários argumentos em funções. Eles são conhecidos como argumentos arbitrários.

Observação: você pode consultar este artigo para obter mais informações sobre operadores de empacotamento em Python.

#29. OOPs em Python

Qual palavra-chave é usada para criar classes em Python?

A palavra-chave class é usada para criar classes em Python. Devemos seguir o caso pascal para nomear as classes em Python como uma prática padrão do setor.

>>> class Car:
...     pass
...

#30. Como instanciar uma classe em Python?

Podemos criar uma instância de uma classe em Python simplesmente chamando-a como function. Podemos passar os atributos necessários para o objeto da mesma forma que fazemos para argumentos de função.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
>>> red_car = Car('red')
>>> red_car.color
'red'
>>> green_car = Car('green')
>>> green_car.color
'green'
>>>

#31. O que é self em Python?

O self representa o objeto da classe. Ele é usado para acessar os atributos e métodos do objeto dentro da classe para o objeto específico.

#32. O que é o método __init__?

O __init__ é o método construtor semelhante aos construtores em outras linguagens OOP. Ele é executado imediatamente quando criamos um objeto para a classe. É usado para inicializar os dados iniciais da instância.

#33. O que é docstring em Python?

As strings de documentação ou docstrings são usadas para documentar um bloco de código. Eles também são usados ​​como comentários de várias linhas.

Essas docstrings são usadas nos métodos de uma classe para descrever o que um determinado método faz. E podemos ver o método docstring usando o método help.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
...     def change_color(self, updated_color):
...             """This method changes the color of the car"""
...             self.color = updated_color
...
>>> car = Car('red')
>>> help(car.change_color)
Help on method change_color in module __main__:

change_color(updated_color) method of __main__.Car instance
    This method changes the color of the car

>>>

#34. O que são métodos dunder ou mágicos?

Os métodos com dois sublinhados de prefixo e sufixo são chamados de métodos dunder ou mágicos. Eles são usados ​​principalmente para substituir os métodos. Alguns dos métodos que podemos sobrescrever em classes são __str__, __len__, __setitem__, __getitem__, etc.,

>>> class Car:
...     def __str__(self):
...             return "This is a Car class"
...
>>> car = Car()
>>> print(car)
This is a Car class
>>>

Nota: Existem muitos outros métodos que você pode substituir. Eles são úteis quando você deseja personalizar o código em profundidade. Explore a documentação para obter mais informações.

#35. Como você implementa herança em Python?

Podemos passar a classe pai para a classe filha como um argumento. E podemos invocar a classe pai do método init na classe filha.

>>> class Animal:
...     def __init__(self, name):
...             self.name = name
...
>>> class Animal:             e):
...     def __init__(self, name):
...             self.name = name
...
...     def display(self):
...             print(self.name)
>>> class Dog(Animal):        e):ame)
...     def __init__(self, name):
...             super().__init__(name)
...
>>> doggy = Dog('Tommy')
>>> doggy.display()
Tommy
>>>

#36. Como acessar a classe pai dentro da classe filho em Python?

Podemos usar o super() que se refere à classe pai dentro da classe filho. E podemos acessar atributos e métodos com ele.

Diversos

#37. Como usar comentários de linha única e de várias linhas em Python?

Usamos hash (#) para comentários de linha única. E aspas simples triplas (“’comentário”’) ou aspas duplas triplas (“””comentário”””) para comentários de várias linhas.

#38. O que é um objeto em Python?

Tudo em Python é um objeto. Todos os tipos de dados, funções e classes são objetos.

#39. Qual é a diferença entre is e ==?

O operador == é usado para verificar se dois objetos têm o mesmo valor ou não. O operador is é usado para verificar se dois objetos estão se referindo ao mesmo local de memória ou não.

>>> a = []
>>> b = []
>>> c = a
>>> a == b
True
>>> a is b
False
>>> a is c
True
>>>

#40. O que é cópia superficial e profunda?

Cópia rasa: cria a cópia exata do original sem alterar as referências dos objetos. Agora, os objetos copiados e originais referem-se às mesmas referências de objeto. Portanto, alterar um objeto afetará o outro.

O método de cópia do módulo de cópia é usado para a cópia superficial.

>>> from copy import copy
>>> a = [1, [2, 3]]
>>> b = copy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 4]]

Deep Copy: copia os valores do objeto original recursivamente para o novo objeto. Temos que usar a função de fatiamento ou cópia profunda do módulo de cópia para a cópia profunda.

>>> from copy import deepcopy
>>> a = [1, [2, 3]]
>>> b = deepcopy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3]]
>>> b[1].append(5)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 5]]
>>>

#41. O que são iteradores?

Iteradores são objetos em Python que lembram seu estado de iteração. Ele inicializa os dados com o método __iter__ e retorna o próximo elemento usando o método __next__.

Precisamos chamar o next(iterator) para obter o próximo elemento do iterador. E podemos converter um tipo de dados de sequência em um iterador usando o método integrado iter.

>>> a = [1, 2]
>>> iterator = iter(a)
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>>

#42. O que são geradores?

Geradores são as funções que retornam um iterador como um objeto gerador. Ele usa o rendimento para gerar os dados.

>>> def numbers(n):
...     for i in range(1, n + 1):
...             yield i
...
>>> _10 = numbers(10)
>>> next(_10)
1
>>> next(_10)
2
>>> next(_10)
3
>>> next(_10)
4

Conclusão 👨‍💻

As perguntas não são limitadas, como vemos neste artigo. Este artigo mostra como diferentes tipos de perguntas podem ser feitas de vários tópicos em Python. Mas não se limita ao conjunto de questões que discutimos neste artigo.

Uma maneira de estar preparado enquanto aprende é questionar-se sobre diferentes tópicos. Tente fazer diferentes tipos de perguntas a partir de um conceito. E responda você mesmo. Dessa forma, você provavelmente não vai se surpreender com as perguntas da entrevista. Você também pode conferir o compilador Python online para praticar o código.

Tudo de bom para sua próxima entrevista em Python! 👍