Pular para o conteúdo principal
InicioBlogPython

As 23 principais perguntas e respostas da entrevista sobre Python para 2024

Perguntas essenciais sobre Python para entrevistas com exemplos para quem está procurando emprego, estudantes do último ano e profissionais de dados.
Actualizado 11 de set. de 2024  · 23 min leer

Perguntas da entrevista com Python

O Python continua a dominar o setor de tecnologia como uma das linguagens de programação mais versáteis e procuradas. Não importa se você está se preparando para uma entrevista técnica ou se deseja aprimorar suas habilidades de codificação, dominar Python é essencial. As entrevistas geralmente envolvem a solução de desafios e a explicação de funcionalidades complexas em Python.

Este guia fornece uma lista abrangente das perguntas mais comuns e avançadas da entrevista sobre Python. Se você praticar essas perguntas, os profissionais de dados, desenvolvedores e engenheiros de software terão as habilidades necessárias para se destacar em entrevistas técnicas e avançar em suas carreiras.

Obter uma certificação Top Data

Avance em sua carreira com certificações líderes do setor.
Acelerar Minha Carreira

Perguntas básicas da entrevista sobre Python

Essas são algumas das perguntas que você pode encontrar durante uma entrevista de nível básico sobre Python. 

As listas e as tuplas são estruturas de dados Python fundamentais com características e casos de uso distintos.

Lista:

  • Mutável: Os elementos podem ser alterados após a criação.
  • Uso de memória: Consome mais memória.
  • Desempenho: Iteração mais lenta em comparação com as tuplas, mas melhor para operações de inserção e exclusão.
  • Métodos: Oferece vários métodos incorporados para manipulação.

Exemplo:

a_list = ["Data", "Camp", "Tutorial"]
a_list.append("Session")
print(a_list)  # Output: ['Data', 'Camp', 'Tutorial', 'Session']

Tuple:

  • Imutável: Os elementos não podem ser alterados após a criação.
  • Uso de memória: Consome menos memória.
  • Desempenho: Iteração mais rápida em comparação com as listas, mas não tem a flexibilidade das listas.
  • Métodos: Métodos incorporados limitados.

Exemplo:

a_tuple = ("Data", "Camp", "Tutorial")
print(a_tuple)  # Output: ('Data', 'Camp', 'Tutorial')

Saiba mais em nosso tutorial sobre Listas em Python.

2. O que é __init__() em Python?

O método __init__() é conhecido como um construtor na terminologia de programação orientada a objetos (OOP). É usado para inicializar o estado de um objeto quando ele é criado. Esse método é chamado automaticamente quando uma nova instância de uma classe é instanciada.

Objetivo:

  • Atribuir valores às propriedades do objeto.
  • Executar qualquer operação de inicialização.

Exemplo

Criamos uma classe `book_shop` e adicionamos o construtor e a função `book()`. O construtor armazenará o nome do título do livro e a função `book()` imprimirá o nome do livro.

Para testar nosso código, inicializamos o objeto `b` com "Sandman" e executamos a função `book()`. 

class book_shop:

    # constructor
    def __init__(self, title):
        self.title = title

    # Sample method
    def book(self):
        print('The tile of the book is', self.title)


b = book_shop('Sandman')
b.book()
# The tile of the book is Sandman

3. Qual é a diferença entre um tipo de dados mutável e um tipo de dados imutável?

Tipos de dados mutáveis:

  • Definição: Os tipos de dados mutáveis são aqueles que podem ser modificados após sua criação.
  • Exemplos: Lista, dicionário, conjunto.
  • Características: Os elementos podem ser adicionados, removidos ou alterados.
  • Caso de uso: Adequado para coleções de itens em que são necessárias atualizações frequentes.

Exemplo:

# List Example
a_list = [1, 2, 3]
a_list.append(4)
print(a_list)  # Output: [1, 2, 3, 4]

# Dictionary Example
a_dict = {'a': 1, 'b': 2}
a_dict['c'] = 3
print(a_dict)  # Output: {'a': 1, 'b': 2, 'c': 3}

Tipos de dados imutáveis:

  • Definição: Tipos de dados imutáveis são aqueles que não podem ser modificados após sua criação.
  • Exemplos: Numérico (int, float), String, Tuple.
  • Características: Os elementos não podem ser alterados depois de definidos; qualquer operação que pareça modificar um objeto imutável criará um novo objeto.

Exemplo:

# Numeric Example
a_num = 10
a_num = 20  # Creates a new integer object
print(a_num)  # Output: 20

# String Example
a_str = "hello"
a_str = "world"  # Creates a new string object
print(a_str)  # Output: world

# Tuple Example
a_tuple = (1, 2, 3)
# a_tuple[0] = 4  # This will raise a TypeError
print(a_tuple)  # Output: (1, 2, 3)

4. Explique a compreensão de lista, dicionário e tupla com um exemplo.

Lista

A compreensão de lista oferece uma sintaxe de linha única para criar uma nova lista com base nos valores da lista existente. Você pode usar um `for loop` para replicar a mesma coisa, mas isso exigirá que você escreva várias linhas e, às vezes, isso pode se tornar complexo. 

A compreensão de lista facilita a criação da lista com base no iterável existente. 

my_list = [i for i in range(1, 10)]
my_list
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

Dicionário

Semelhante a uma compreensão de lista, você pode criar um dicionário com base em uma tabela existente com uma única linha de código. Você precisa colocar a operação entre colchetes `{}`.

my_dict = {i for i in range(1, 10)}
my_dict
# {1, 2, 3, 4, 5, 6, 7, 8, 9}

Tuple

Isso é um pouco diferente para as tuplas. Você pode criar a compreensão de tuplas usando colchetes `()`, mas ela retornará um objeto gerador, não uma compreensão de tuplas.

Você pode executar o loop para extrair os elementos ou convertê-los em uma lista.

my_tuple = (i for i in range(1, 10))
my_tuple
# <generator object <genexpr> at 0x7fb91b151430>

Você pode saber mais em nosso tutorial Python Tuples

Perguntas avançadas para entrevistas com Python

Essas perguntas da entrevista são para profissionais mais experientes em Python. 

5. O que é monkey patching em Python?

O Monkey patching em Python é uma técnica dinâmica que pode alterar o comportamento do código em tempo de execução. Em resumo, você pode modificar uma classe ou módulo em tempo de execução.

Exemplo:

Vamos aprender a aplicar patches de macaco com um exemplo. 

  1. Criamos uma classe `monkey` com uma função `patch()`. Também criamos uma função `monk_p` fora da classe. 
  2. Agora, substituiremos a função `patch` pela função `monk_p`, atribuindo `monkey.patch` a `monk_p`.
  3. No final, testaremos a modificação criando o objeto usando a classe `monkey` e executando a função `patch()`. 

Em vez de exibir "patch() está sendo chamado", ele exibiu "monk_p() está sendo chamado". 

class monkey:
    def patch(self):
          print ("patch() is being called")

def monk_p(self):
    print ("monk_p() is being called")

# replacing address of "patch" with "monk_p"
monkey.patch = monk_p

obj = monkey()

obj.patch()
# monk_p() is being called

6. Para que serve a instrução "with" do Python?

A instrução `with` é usada para o tratamento de exceções para tornar o código mais limpo e simples. Geralmente, ele é usado para o gerenciamento de recursos comuns, como criar, editar e salvar um arquivo. 

Exemplo:

Em vez de escrever várias linhas de open, try, finally e close, você pode criar e gravar um arquivo de texto usando a instrução `with`. É simples.

# using with statement
with open('myfile.txt', 'w') as file:
    file.write('DataCamp Black Friday Sale!!!')

7. Por que usar else na construção try/except em Python?

`try:` e `except:` são comumente conhecidos pelo tratamento de exceções em Python, então onde é que `else:` é útil? O `else:` será acionado quando nenhuma exceção for criada. 

Exemplo:

Vamos aprender mais sobre `else:` com alguns exemplos.

  1. Na primeira tentativa, inserimos 2 como numerador e "d" como denominador. O que está incorreto, e o `except:` foi acionado com "Invalid input!". 
  2. Na segunda tentativa, inserimos 2 como numerador e 1 como denominador e obtivemos o resultado 2. Nenhuma exceção foi levantada, então você acionou o `else:` imprimindo a mensagem "Division is successful". 
try:
    num1 = int(input('Enter Numerator: '))
    num2 = int(input('Enter Denominator: '))
    division = num1/num2
    print(f'Result is: {division}')
except:
    print('Invalid input!')
else:
    print('Division is successful.')


## Try 1 ##
# Enter Numerator: 2
# Enter Denominator: d
# Invalid input!

## Try 2 ##
# Enter Numerator: 2
# Enter Denominator: 1
# Result is: 2.0
# Division is successful.

Faça o curso de habilidades Python Fundamentals para adquirir as habilidades básicas que você precisa para se tornar um programador Python. 

8. O que são decoradores em Python? 

Os decoradores em Python são um padrão de design que permite que você adicione novas funcionalidades a um objeto existente sem modificar sua estrutura. Eles são comumente usados para ampliar o comportamento de funções ou métodos.

Exemplo:

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()
# Output:
# Something is happening before the function is called.
# Hello!
# Something is happening after the function is called.

9. O que são gerenciadores de contexto em Python e como eles são implementados?

Os gerenciadores de contexto em Python são usados para gerenciar recursos, garantindo que eles sejam adquiridos e liberados adequadamente. O uso mais comum dos gerenciadores de contexto é a declaração with.

Exemplo:

class FileManager:
    def __init__(self, filename, mode):
        self.filename = filename
        self.mode = mode
    
    def __enter__(self):
        self.file = open(self.filename, self.mode)
        return self.file
    
    def __exit__(self, exc_type, exc_value, traceback):
        self.file.close()

with FileManager('test.txt', 'w') as f:
    f.write('Hello, world!')

Neste exemplo, a classe FileManager é um gerenciador de contexto que garante que o arquivo seja fechado corretamente depois de ser usado na instrução with.

Perguntas da entrevista sobre ciência de dados em Python

Para aqueles que se concentram mais nos aplicativos de ciência de dados do Python, estas são algumas perguntas que você pode encontrar. 

10. Quais são as vantagens do NumPy em relação às listas regulares do Python?

Memória 

As matrizes Numpy consomem menos memória. 

Por exemplo, se você criar uma lista e uma matriz Numpy de mil elementos. A lista consumirá 48 mil bytes, e a matriz Numpy consumirá 8 mil bytes de memória.  

Velocidade

Os arrays Numpy levam menos tempo para realizar as operações em arrays do que em listas. 

Por exemplo, se estivermos multiplicando duas listas e duas matrizes Numpy de 1 milhão de elementos. Você levou 0,15 segundo para a lista e 0,0059 segundo para a matriz operar. 

Vestibilidade 

As matrizes Numpy são convenientes de usar, pois oferecem múltiplas matrizes simples, adição e muitas outras funcionalidades incorporadas. Enquanto as listas do Python são incapazes de executar operações básicas. 

11. Qual é a diferença entre mesclar, unir e concatenar?

Mesclar

Mesclar dois DataFrames denominados objetos de série usando o identificador de coluna exclusivo. 

Ele requer dois DataFrame, uma coluna comum em ambos os DataFrame e "como" você deseja uni-los. Você pode unir dois DataFrames de dados à esquerda, à direita, externos, internos e cruzados. Por padrão, é uma união interna. 

pd.merge(df1, df2, how='outer', on='Id')

Junte-se a você

Unir os DataFrames usando o índice exclusivo. Ele requer um argumento opcional `on` que pode ser uma coluna ou vários nomes de colunas. Por padrão, a função de união executa uma união à esquerda. 

df1.join(df2)

Concatenar

O Concatenate une dois ou vários DataFrames em um eixo específico (linhas ou colunas). Ele não requer um argumento `on`. 

pd.concat(df1,df2)
  • join(): combina dois DataFrames por índice.
  • merge(): combina dois DataFrames pela coluna ou colunas que você especificar.
  • concat(): combina dois ou mais DataFrames vertical ou horizontalmente.

12. Como você identifica e lida com valores ausentes?

Identificação de valores ausentes 

Podemos identificar os valores ausentes no DataFrame usando a função `isnull()` e, em seguida, aplicando `sum()`. A função `Isnull()` retornará valores booleanos e a soma fornecerá a você o número de valores ausentes em cada coluna. 

No exemplo, criamos um dicionário de listas e o convertemos em um DataFrame do pandas. Depois disso, usamos isnull().sum() para obter o número de valores ausentes em cada coluna.  

import pandas as pd
import numpy as np

# dictionary of lists
dict = {'id':[1, 4, np.nan, 9],
        'Age': [30, 45, np.nan, np.nan],
        'Score':[np.nan, 140, 180, 198]}

# creating a DataFrame
df = pd.DataFrame(dict)

df.isnull().sum()
# id       1
# Age      2
# Score    1

Como lidar com valores ausentes

Há várias maneiras de lidar com valores ausentes. 

  1. Elimine toda a linha ou as colunas se elas consistirem em valores ausentes usando `dropna()`. Esse método não é recomendado, pois você perderá informações importantes.
  2. Preencha os valores ausentes com a constante, a média, o preenchimento para trás e o preenchimento para frente usando a função `fillna()`.
  3. Substitua os valores ausentes por uma constante String, Integer ou Float usando a função `replace()`.
  4. Preencha os valores ausentes usando um método de interpolação.   

Observação: certifique-se de que você está trabalhando com um conjunto de dados maior ao usar a função `dropna()`. 

# drop missing values
df.dropna(axis = 0, how ='any')

#fillna
df.fillna(method ='bfill')

#replace null values with -999
df.replace(to_replace = np.nan, value = -999)

# Interpolate
df.interpolate(method ='linear', limit_direction ='forward')

interpolação de pandas

Para se tornar um cientista de dados profissional, você pode seguir a carreira de Cientista de Dados com Python. Ele inclui 25 cursos e seis projetos para ajudar você a aprender todos os fundamentos da ciência de dados com a ajuda das bibliotecas Python. 

13. Quais bibliotecas Python você já usou para visualização? 

A visualização de dados é a parte mais importante da análise de dados. Você pode ver seus dados em ação e isso o ajuda a encontrar padrões ocultos.

As bibliotecas de visualização de dados Python mais populares são:

  1. Matplotlib
  2. Seaborn
  3. Plotly
  4. Bokeh

Em Python, geralmente usamos Matplotlib e seaborn para exibir todos os tipos de visualização de dados. Com algumas linhas de código, você pode usá-lo para exibir gráficos de dispersão, gráficos de linhas, gráficos de caixa, gráficos de barras e muito mais. 

Para aplicativos interativos e mais complexos, usamos o Plotly. Você pode usá-lo para criar gráficos interativos coloridos com algumas linhas de código. Você pode aplicar zoom, animações e até mesmo adicionar funções de controle. O Plotly oferece mais de 40 tipos exclusivos de gráficos, e você pode até mesmo usá-los para criar um aplicativo da Web ou um painel de controle. 

O Bokeh é usado para gráficos detalhados com um alto nível de interatividade em grandes conjuntos de dados. 

Perguntas da entrevista sobre codificação Python

Se você tiver uma entrevista sobre codificação Python em breve, preparar perguntas semelhantes a essas pode ajudá-lo a impressionar o entrevistador. 

14. Como você pode substituir o espaço da cadeia de caracteres por um determinado caractere em Python?

É um desafio simples de manipulação de strings. Você precisa substituir o espaço por um caractere específico.  

Exemplo 1: um usuário forneceu a cadeia de caracteres "l vey u" e o caractere "o", e o resultado será "loveyou".

Exemplo 2: um usuário forneceu a string "D t C mpBl ckFrid yS le" e o caractere "a", e o resultado será "DataCampBlackFridaySale".

Na função `str_replace()`, faremos um loop em cada letra da string e verificaremos se ela é um espaço ou não. Se ele consistir em espaço, nós o substituiremos pelo caractere específico fornecido pelo usuário. Por fim, retornaremos a string modificada. 

def str_replace(text,ch):
    result = ''
    for i in text: 
            if i == ' ': 
                i = ch  
            result += i 
    return result

text = "D t C mpBl ckFrid yS le"
ch = "a"

str_replace(text,ch)
# 'DataCampBlackFridaySale'

15. Dado um número inteiro positivo num, escreva uma função que retorne True se num for um quadrado perfeito, caso contrário, False.

Isso tem uma solução relativamente simples. Você pode verificar se o número tem uma raiz quadrada perfeita:

  1. Encontrar a raiz quadrada do número e convertê-la em um número inteiro.
  2. Aplicando o quadrado à raiz quadrada do número e verificando se é uma raiz quadrada perfeita.
  3. Retornando o resultado como um booleano. 

Teste 1  

Fornecemos o número 10 para a função `valid_square()`. 

  1. Ao tirar a raiz quadrada do número, você obtém 3,1622776601683795.
  2. Ao convertê-lo em um número inteiro, obtemos 3.
  3. Em seguida, pegue o quadrado de 3 e obtenha 9.
  4. 9 não é igual ao número, portanto a função retornará False. 

a

Teste 2

Fornecemos o número 36 para a função `valid_square()`. 

  1. Ao tirar a raiz quadrada do número, você obtém 6.
  2. Ao convertê-lo em um número inteiro, obtemos 6.
  3. Em seguida, você deve considerar o quadrado de 6 e obter 36.
  4. 36 é igual ao número, portanto, a função retornará True. 
def valid_square(num):
    square = int(num**0.5)
    check = square**2==num
    return check

valid_square(10)
# False
valid_square(36)
# True

16. Dado um número inteiro n, retorne o número de zeros à direita em n fatorial n!

Para passar nesse desafio, você deve primeiro calcular o fatorial n (n!) e, em seguida, calcular o número de zeros de treinamento. 

Como encontrar o fatorial 

Na primeira etapa, usaremos um loop while para iterar sobre o fatorial n e parar quando n for igual a 1. 

Cálculo de zeros finais

Na segunda etapa, calcularemos o zero final, não o número total de zeros. Há uma grande diferença. 

7! = 5040

Os sete fatoriais têm um total de dois zeros e apenas um zero à direita, portanto, nossa solução deve retornar 1. 

  1. Converta o número fatorial em uma cadeia de caracteres.
  2. Leia-o novamente e aplique um loop.
  3. Se o número for 0, adicione +1 ao resultado; caso contrário, interrompa o loop.
  4. Retorna o resultado.

A solução é elegante, mas requer atenção aos detalhes. 

def factorial_trailing_zeros(n):

    fact = n
    while n > 1:
        fact *= n - 1
        n -= 1

    result = 0

    for i in str(fact)[::-1]:
        if i == "0":
            result += 1
        else:
            break

    return result


factorial_trailing_zeros(10)
# 2
factorial_trailing_zeros(18)
# 3

Faça o curso essencial de prática de perguntas de codificação para entrevistas para se preparar para suas próximas entrevistas de codificação em Python.

Pergunta da entrevista sobre Python da FAANG

Abaixo, selecionamos algumas das perguntas que você pode esperar dos cargos mais procurados nos setores, como os da Meta, Amazon, Google e similares. 

Perguntas da entrevista do Facebook/Meta Python

As perguntas exatas que você encontrará na Meta dependem muito da função. No entanto, você pode esperar alguns dos seguintes itens: 

17. Segmentação de cordas

Você receberá uma corda grande e um dicionário de palavras. Você precisa descobrir se a string de entrada pode ser segmentada em palavras usando o dicionário ou não.  

Segmentação de cordas

Imagem do autor

A solução é razoavelmente simples. Você precisa segmentar uma cadeia grande em cada ponto e verificar se a cadeia pode ser segmentada para as palavras do dicionário.

  1. Execute o loop usando o comprimento da corda grande.
  2. Criaremos duas substrings. 
  3. A primeira substring verificará cada ponto da string grande a partir de s[0:i]
  4. Se a primeira substring não estiver no dicionário, você retornará False.
  5. Se a primeira substring estiver no dicionário, você criará a segunda substring usando s[i:0].
  6. Se a segunda substring estiver no dicionário ou se o comprimento da segunda substring for zero, você retornará True. Chame recursivamente `can_segment_str()` com a segunda substring e retorne True se ela puder ser segmentada. 
def can_segment_str(s, dictionary):
    for i in range(1, len(s) + 1):
        first_str = s[0:i]
        if first_str in dictionary:
            second_str = s[i:]
            if (
                not second_str
                or second_str in dictionary
                or can_segment_str(second_str, dictionary)
            ):
                return True
    return False


s = "datacamp"
dictionary = ["data", "camp", "cam", "lack"]
can_segment_string(s, dictionary)
# True

18. Remover duplicatas da matriz ordenada

Dada uma matriz inteira classificada em ordem crescente, remova os números duplicados de forma que cada elemento único apareça apenas uma vez. Certifique-se de que você mantenha a mesma ordem final da matriz.

É impossível alterar o comprimento da matriz em Python, portanto, colocaremos o resultado na primeira parte da matriz. Depois de remover as duplicatas, teremos k elementos, e os primeiros k elementos da matriz devem conter os resultados. 

Remover duplicatas da matriz ordenada

Imagem de LeetCode

Exemplo 1: a matriz de entrada é [1,1,2,2], a função deve retornar 2. 

Exemplo 2: a matriz de entrada é [1,1,2,3,3], a função deve retornar 3.

Solução:

  1. Execute o loop para o intervalo de 1 até o tamanho da matriz.
  2. Verifique se o número anterior é exclusivo ou não. Estamos comparando elementos anteriores com o atual.  
  3. Se for exclusivo, atualize a matriz usando insertIndex, que é 1 no início, e adicione +1 ao insertIndex. 
  4. Retorna insertIndex, pois é o k. 

Essa pergunta é relativamente simples quando você sabe como fazer. Se você dedicar mais tempo para entender a declaração, poderá facilmente encontrar uma solução. 

def removeDuplicates(array):
    size = len(array)
    insertIndex = 1
    for i in range(1, size):
        if array[i - 1] != array[i]:
            # Updating insertIndex in our main array
            array[insertIndex] = array[i]
            # Incrementing insertIndex count by 1
            insertIndex = insertIndex + 1
    return insertIndex

array_1 = [1,2,2,3,3,4]
removeDuplicates(array_1)
# 4


array_2 = [1,1,3,4,5,6,6]
removeDuplicates(array_2)
# 5

19. Encontre o lucro máximo de uma única venda

Você recebe a lista de preços de ações e precisa retornar o preço de compra e venda para obter o maior lucro. 

Observação: Temos que obter o máximo de lucro com uma única compra/venda e, se não conseguirmos obter lucro, temos que reduzir nossas perdas. 

Exemplo 1: stock_price = [8, 4, 12, 9, 20, 1], buy = 4 e sell = 20. Maximizar o lucro. 

Exemplo 2: stock_price = [8, 6, 5, 4, 3, 2, 1], buy = 6 e sell = 5. Minimizar a perda.

Solução:

  1. Calcularemos o lucro global subtraindo a venda global (o primeiro elemento da lista) da compra atual (o segundo elemento da lista). 
  2. Execute o loop para o intervalo de 1 até o comprimento da lista. 
  3. No loop, calcule o lucro atual usando os elementos da lista e o valor de compra atual. 
  4. Se o lucro atual for maior que o lucro global, altere o lucro global com o lucro atual e a venda global para o elemento i da lista.
  5. Se a compra atual for maior que o elemento atual da lista, altere a compra atual com o elemento atual da lista. 
  6. No final, retornaremos o valor global de compra e venda. Para obter o valor de compra global, subtrairemos a venda global do lucro global.

A pergunta é um pouco complicada, e você pode criar um algoritmo exclusivo para resolver os problemas. 

def buy_sell_stock_prices(stock_prices):
    current_buy = stock_prices[0]
    global_sell = stock_prices[1]
    global_profit = global_sell - current_buy

    for i in range(1, len(stock_prices)):
        current_profit = stock_prices[i] - current_buy

        if current_profit > global_profit:
            global_profit = current_profit
            global_sell = stock_prices[i]

        if current_buy > stock_prices[i]:
            current_buy = stock_prices[i]

    return global_sell - global_profit, global_sell

stock_prices_1 = [10,9,16,17,19,23]
buy_sell_stock_prices(stock_prices_1)
# (9, 23)


stock_prices_2 = [8, 6, 5, 4, 3, 2, 1]
buy_sell_stock_prices(stock_prices_2)
# (6, 5)

Perguntas da entrevista com a Amazon Python

As perguntas da entrevista com o Amazon Python podem variar muito, mas podem incluir: 

20. Encontre o número que falta na matriz

Você recebeu a lista de números inteiros positivos de 1 a n. Todos os números de 1 a n estão presentes, exceto x, e você deve encontrar x. 

Exemplo:

4

5

3

2

8

1

6

  • n = 8 
  • Número ausente = 7

Essa pergunta é um problema simples de matemática.

  1. Encontre a soma de todos os elementos da lista.
  2. Usando a fórmula da soma da série aritmética, encontraremos a soma esperada dos primeiros n números. 
  3. Retorna a diferença entre a soma esperada e a soma dos elementos.  
def find_missing(input_list):

  sum_of_elements = sum(input_list)
 
  # There is exactly 1 number missing
  n = len(input_list) + 1
  actual_sum = (n * ( n + 1 ) ) / 2
 
  return int(actual_sum - sum_of_elements)
list_1 = [1,5,6,3,4]


find_missing(list_1)
# 2

21. Tripleto pitagórico em uma matriz

Escreva uma função que retorne True se houver um tripleto pitagórico que satisfaça a2+ b2 = c2

Exemplo:

Entrada

Saída

[3, 1, 4, 6, 5] 

Verdadeiro 

[10, 4, 6, 12, 5] 

Falso 

Solução:

  1. Eleva ao quadrado todos os elementos da matriz.
  2. Classifique a matriz em ordem crescente.
  3. Dê duas voltas. O loop externo começa do último índice da matriz até 1 e o loop interno começa de (outer_loop_index -1) até o início.
  4. Crie set() para armazenar os elementos entre o índice do loop externo e o índice do loop interno.
  5. Verifique se há um número presente no conjunto que seja igual a (array[outerLoopIndex] - array[innerLoopIndex]). Se sim, você retornará True, caso contrário, False. 
def checkTriplet(array):
    n = len(array)
    for i in range(n):
        array[i] = array[i]**2

    array.sort()

    for i in range(n - 1, 1, -1):
        s = set()
        for j in range(i - 1, -1, -1):
            if (array[i] - array[j]) in s:
                return True
            s.add(array[j])
    return False


arr = [3, 2, 4, 6, 5]
checkTriplet(arr)
# True

22. De quantas maneiras você pode fazer o troco com moedas e um valor total?

Precisamos criar uma função que receba uma lista de denominações de moedas e valores totais e retorne o número de maneiras pelas quais podemos fazer o troco. 

No exemplo, fornecemos as denominações das moedas [1, 2, 5] e o valor total de 5. Em troca, recebemos cinco maneiras de fazer a mudança. 

Você pode fazer troco com moedas

Imagem do autor

Solução:

  1. Criaremos a lista de tamanho amount + 1. Espaços adicionais são adicionados para armazenar a solução para um valor zero.
  2. Iniciaremos uma lista de soluções com 1.
  3. Executaremos dois loops. O loop externo retornará o número de denominações, e o loop interno será executado a partir do intervalo do índice do loop externo até o valor +1.
  4. Os resultados de diferentes denominações são armazenados na matriz solução. solução[i] = solução[i] + solução[i - den]
  5. O processo será repetido para todos os elementos da lista de denominações e, no último elemento da lista de soluções, teremos nosso número.
def solve_coin_change(denominations, amount):
    solution = [0] * (amount + 1)
    solution[0] = 1
    for den in denominations:
        for i in range(den, amount + 1):
            solution[i] += solution[i - den]

    return solution[len(solution) - 1]

denominations = [1,2,5]
amount = 5

solve_coin_change(denominations,amount)
# 4

Perguntas da entrevista do Google Python

Assim como nas outras empresas mencionadas, as perguntas da entrevista do Google Python dependerão da função e do nível de experiência. No entanto, algumas perguntas comuns incluem:

23. Defina uma função lambda, um iterador e um gerador em Python.

A função Lambda também é conhecida como função anônima. Você pode adicionar qualquer número de parâmetros, mas com apenas um comando. 

Um iterador é um objeto que podemos usar para iterar sobre objetos iteráveis, como listas, dicionários, tuplas e conjuntos.

O gerador é uma função semelhante a uma função normal, mas gera um valor usando a palavra-chave yield em vez de return. Se o corpo da função contiver yield, ele se tornará automaticamente um gerador.  

Leia mais sobre iteradores e geradores Python em nosso tutorial completo. 

24. Dada uma matriz arr[], encontre o máximo j - i de modo que arr[j] > arr[i]

Essa pergunta é bastante simples, mas requer atenção especial aos detalhes. Você tem à disposição uma matriz de números inteiros positivos. Temos que encontrar a diferença máxima entre j-i em que array[j] > array[i].

Exemplos:

  1. Entrada: [20, 70, 40, 50, 12, 38, 98], Saída: 6  (j = 6, i = 0)
  2. Entrada: [10, 3, 2, 4, 5, 6, 7, 8, 18, 0], Saída: 8 ( j = 8, i = 0)

Solução

  1. Calcule o comprimento da matriz e inicie a diferença máxima com -1.
  2. Dê duas voltas. O loop externo seleciona os elementos da esquerda e o loop interno compara os elementos selecionados com os elementos que começam do lado direito. 
  3. Interrompa o loop interno quando o elemento for maior que o elemento selecionado e continue atualizando a diferença máxima usando j - I. 
def max_index_diff(array):
    n = len(array)
    max_diff = -1
    for i in range(0, n):
        j = n - 1
        while(j > i):
            if array[j] > array[i] and max_diff < (j - i):
                max_diff = j - i
            j -= 1

    return max_diff

array_1 = [20,70,40,50,12,38,98]

max_index_diff(array_1)
# 6

25. Como você usaria os operadores ternários em Python?

Os operadores ternários também são conhecidos como expressões condicionais. São operadores que avaliam expressões com base em condições como True (verdadeiro) e False (falso).

Você pode escrever expressões condicionais em uma única linha em vez de escrever usando várias linhas de instruções if-else. Ele permite que você escreva um código limpo e compacto. 

Por exemplo, podemos converter instruções if-else aninhadas em uma linha, como mostrado abaixo. 

Declaração If-else

score = 75

if score < 70:
    if score < 50:
        print('Fail')
    else:
        print('Merit')
else:
    print('Distinction')
# Distinction

Operador ternário aninhado

print('Fail' if score < 50 else 'Merit' if score < 70 else 'Distinction')
# Distinction

Capacitando sua equipe com Python

Embora a preparação para entrevistas com Python seja essencial para quem procura emprego e para os gerentes de contratação, é igualmente importante que as empresas invistam em treinamento contínuo em Python para suas equipes. Em uma era em que a automação, a análise de dados e o desenvolvimento de software são fundamentais, garantir que seus funcionários tenham habilidades sólidas em Python pode ser um fator transformador para o sucesso da sua empresa.

Se você é líder de equipe ou proprietário de uma empresa e deseja garantir que toda a sua equipe seja proficiente em Python, o DataCamp for Business oferece programas de treinamento personalizados que podem ajudar seus funcionários a dominar as habilidades em Python, desde os conceitos básicos até os avançados. Podemos fornecer:

  • Caminhos de aprendizado direcionados: Personalizável de acordo com o nível de habilidade atual da sua equipe e com as necessidades comerciais específicas.
  • Prática prática: Projetos do mundo real e exercícios de codificação que reforçam o aprendizado e melhoram a retenção.
  • Acompanhamento do progresso: Ferramentas para monitorar e avaliar o progresso de sua equipe, garantindo que eles atinjam suas metas de aprendizado.

Investir na capacitação em Python por meio de plataformas como o DataCamp não apenas aprimora os recursos da sua equipe, mas também oferece à sua empresa uma vantagem estratégica, permitindo que você inove, permaneça competitivo e forneça resultados impactantes. Conecte-se com nossa equipe e solicite uma demonstração hoje mesmo.

Aumente a proficiência em Python da sua equipe

Treine sua equipe em Python com o DataCamp for Business. Treinamento abrangente, projetos práticos e métricas de desempenho detalhadas para sua empresa.

Solicite Uma Demonstração Hoje Mesmo!
homepage-hero.png

Considerações finais

Dominar Python é fundamental para qualquer pessoa que queira se destacar em entrevistas técnicas, sejam elas aspirantes a profissionais de dados, desenvolvedores ou engenheiros de software. Este guia fornece uma visão geral das perguntas comuns da entrevista sobre Python, que vão do nível básico ao avançado, bem como desafios de codificação e perguntas específicas das principais empresas de tecnologia.

Ao praticar essas perguntas e entender suas soluções, você pode aprimorar significativamente suas habilidades de solução de problemas e seu conhecimento técnico, o que o deixará bem preparado para passar nas etapas técnicas e de codificação das entrevistas.

A obtenção das principais certificações em Python e o aprendizado contínuo por meio de cursos e projetos reforçarão ainda mais seus conhecimentos e suas perspectivas de carreira no setor de tecnologia. Se você precisa aprimorar suas habilidades, não deixe de concluir nosso curso de carreira de Cientista de Dados Associado em Python

Perguntas frequentes sobre a entrevista com Python

Como posso me preparar para uma entrevista com Python?

Você precisa revisar a sintaxe, as funções, as classes, os tipos de dados, os algoritmos, as estruturas de dados e o tratamento excepcional do Python. Além disso, você precisa ler tutoriais técnicos, analisar projetos de exemplo, folhas de consulta e perguntas simuladas e resolver desafios de codificação para passar na fase de entrevista.

Você precisa se preparar para perguntas gerais sobre Python em funcionalidade nativa, perguntas específicas do cargo (engenheiro de dados, cientista de dados, desenvolvedor de back-end) e perguntas com base em código cronometrado. Você pode praticar perguntas Python sobre aprendizado de máquina e perguntas de entrevista sobre estatística em Python com o DataCamp.

Como você se destaca em uma entrevista sobre codificação em Python?

Você deve demonstrar a capacidade de escrever códigos limpos e prontos para produção, entender bibliotecas, ferramentas e algoritmos Python específicos do trabalho e encontrar soluções exclusivas para problemas complexos. Todos vocês podem fazer isso praticando desafios de codificação ou trabalhando em um projeto de código aberto. 

Você também pode se destacar criando um portfólio de projetos baseados em Python no GitHub e em sites pessoais.

O que é Lambda em Python?

Uma função lambda também é conhecida como função anônima, uma função Python sem nome. Ele pode receber qualquer número de argumentos, mas avalia e retorna apenas uma expressão.

Sintaxe:

lambda arguments : expression

Exemplo:

lambda_add = lambda a : a + 10
print(lambda_add (7))
# 17

Quais são os cinco principais usos do Python?

  1. Desenvolvimento de sites e software
  2. Software de script e utilitário
  3. Aplicativos de desktop
  4. Análise de dados
  5. Aprendizado de máquina

O mapa é mais rápido do que o loop for?

O "map" é mais rápido do que o "for loop" se você estiver aplicando a função a cada item de um iterável. 

Temas

Cursos para entrevistas com Python

Course

Practicing Machine Learning Interview Questions in Python

4 hr
9.8K
Sharpen your knowledge and prepare for your next interview by practicing Python machine learning interview questions.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

As 26 principais perguntas e respostas da entrevista sobre pandas em Python

Explore as principais perguntas e respostas da entrevista sobre Python pandas para funções de ciência de dados
Srujana Maddula's photo

Srujana Maddula

15 min

blog

As 20 principais perguntas da entrevista sobre o NumPy: Do básico ao avançado

Prepare-se para sua próxima entrevista de ciência de dados com perguntas essenciais sobre NumPy, do básico ao avançado. Perfeito para aprimorar suas habilidades e aumentar a confiança!
Tim Lu's photo

Tim Lu

20 min

Machine Learning Interview Questions

blog

As 25 principais perguntas da entrevista sobre aprendizado de máquina para 2024

Explore as principais perguntas de entrevistas sobre aprendizado de máquina com respostas para estudantes do último ano e profissionais.
Abid Ali Awan's photo

Abid Ali Awan

22 min

blog

As 45 principais perguntas da entrevista sobre PostgreSQL para todos os níveis

Está se candidatando a um emprego que exige fluência em PostgreSQL? Prepare-se para o processo de entrevista com esta lista abrangente de perguntas sobre o PostgreSQL
Python

blog

As 26 principais bibliotecas Python para ciência de dados em 2024

Neste guia abrangente, analisamos as bibliotecas Python mais importantes para a ciência de dados e discutimos como seus recursos específicos podem impulsionar sua prática de ciência de dados.
Moez Ali's photo

Moez Ali

22 min

tutorial

21 ferramentas essenciais do Python

Aprenda sobre as ferramentas Python essenciais para o desenvolvimento de software, raspagem e desenvolvimento da Web, análise e visualização de dados e aprendizado de máquina.
Abid Ali Awan's photo

Abid Ali Awan

6 min

See MoreSee More