Рубрики
Без рубрики

Учебники Python Scribing Интервью Вопрос для данных ученых

Python Screening Интервью Вопросы для ученых данных Photo by Marius Masalar на Unsplash … Tagged Engineering, Python, программирование, технология.

Питона скрининга собеседования Вопросы для данных ученых

фото Мариус Масалар на Бессмысленно

Danascience требует междисциплинарного набора навыков, от обработки баз данных, для работы статистической модели, для настройки бизнеса и самого программирования. Чаще, чем не технические интервью для ученых-ученых на данных, оценивают больше знаний о конкретных аписах управления данными, таких как панды, ск.

Хотя я думаю, что знание более «прикладных» API – это то, что следует протестировать при найме данных-ученого, так и знания более традиционного программирования.

String Reversal & Palindreome

Вопросы разворота String могут предоставить некоторую информацию о том, насколько хорошо определенные кандидаты были связаны с текстом в Python и при обращении с основными операциями.

Вопрос 1:

Вопрос: Обратить вспять строку “” Фокс прыгает над ленивой собакой “

Отвечать:

a = "the fox jumps over the lazy dog"
a[::-1]

or ''.join(x for x in reversed(a)) [less efficient]
or ''.join(a[-x] for x in range(1, len(a)+1)) [less efficient]

Оценка:

  • Это больше вопроса разминки, чем все остальное, и хотя хорошо знать ярлык, особенно как оно обозначает некоторые знания о том, как Python предлагает строки (например, А [0: 7] для лисицы) не нужно для большинства целей данных-науки

Вопрос 2:

Вопрос:|: Идентичность всех слов, которые являются палиндромами в следующем предложении «LOL, это GAG, я не смеялся так много в течение длительного времени»

Отвечать:

def isPalindrome(word: str) -\> bool:
 if(word == word[::-1]):
 return True
 return False

def getPalindromesFromStr(inputStr: str) -\> list:
 cleanStr = inputStr.replace(",","").lower()
 words = set(cleanStr.split(" "))
 wPalindromes = [
 word for word in words 
 if isPalindrome(word) and word != ""
 ]
 return wPalindromes

getPalindromesFromStr("Lol, this is a gag, I didn't laugh so much in a long time")

Оценка:

  • Делает ли кандидат о уборке его/ее входов?
  • Кандидат знает базовую или слово обработки в Python, таких как замена/разделение/ниже?
  • Кандидат умеет использовать понимание списка?
  • Как кандидат структура его/ее код?

Fizzzbuzz.

Fizzbuzz – это традиционный вопрос скрининга программирования, который позволяет тестировать, может ли кандидата может подумать с проблемой, которая не просто, если ищешь оператор. Подход, который они принимают, также могут пролить свет на их понимание языка.

Вопрос: Напишите программу, которая печатает номер от 1 до 50, для числа множества 2 печати Fizz вместо номера, для номеров, кратчайших 3 печать, для чисел, которые множественны как 2 и 3 FizzCuzz.

Отвечать:

def fizzbuzzfn(num) -\> str:
 mod\_2 = (num % 2 == 0) 
 mod\_3 = (num % 3 == 0)
 if (mod\_2 or mod\_3):
 return (mod\_2 \* 'Fizz') + (mod\_3 \* 'Buzz')
 return str(num)

print('\n'.join([fizzbuzzfn(x) for x in range(1,51)]))

Оценка:

  • Знаете ли они оператора модуля и способны применить его?
  • Они хранят результат операторов модуля в переменных для повторного использования?
  • Они понимают, насколько верно/ложь взаимодействует со строкой?
  • Они бомбардируют свой код с помощью утверждений?
  • Они возвращают постоянный тип или смешивают как целое число, так и строку?

Первое дубликат слово

Первое нахождение дубликата слова позволяет идентично, если кандидаты знают базовые текстовые обработки в Python, а также могут обрабатывать некоторые основные структуры данных.

Вопрос 1

Вопрос: Учитывая строку найти первое дубликат слово, пример строки: «Это просто чудо, удивляйтесь, почему я имею в виду»

Отвечать:

string = "this is just a wonder, wonder why do I have this in mind"

def firstduplicate(string: str) -\> str:
 import re
 cleanStr = re.sub("[^a-zA-Z -]", "", string)

 words = cleanStr.lower().split(" ")
 seen\_words = set()
 for word in words:
 if word in seen\_words:
 return word
 else: 
 seen\_words.add(word)
 return None

firstduplicate(string)

Оценка:

  • У меня есть ограничение, с которыми мне нужно работать, например, с точки зрения памяти?
  • Очищает строку от пунктуации? Заменить или регулировать Если использование Regexp заменить, я должен скомпилировать выражение Regexp или использовать его напрямую?
  • Знает правильную структуру данных для проверки наличия.
  • Это прекращает функцию, как только матч найден или?

Вопрос 2:

Вопрос: Что если мы хотели найти первое слово с более чем 2 дубликатами в строке?

Отвечать:

string = "this is just a wonder, wonder why do I have this in mind. This is all that matters."

def first2timesduplicate(string: str) -\> str:
 import re
 cleanStr = re.sub("[^a-zA-Z -]", "", string)

 words = cleanStr.lower().split(" ")
 seen\_words = dict()

for word in words:
 previous\_count = seen\_words.get(word, 0)
 seen\_words[word] = previous\_count + 1
 if previous\_count \>= 2:
 return word
 return None

first2timesduplicate(string)

Оценка:

  • Необходима небольшая модификация, необходима для того, чтобы иметь возможность вместить это изменение, основной вытекает при использовании структуры данных словаря, а не набора. Счетчики также являются действительной структурой данных для этого использования.
  • Немало трудно изменить предыдущую функцию, чтобы справиться с этим запросом на изменение, стоит проверять, что кандидат создает конкретный ключ правильно, принимая во внимание значения по умолчанию.

Быстрые огневые вопросы

Некоторые быстрые пожарные вопросы также могут попросить проверить общие знания языка Python.

Вопрос 1:

Вопрос: Повторить сумму для любого количества переменных, например, сумма (1,2,3,4,5 ..)

Отвечать

def sum(\*args):
 val = 0
 for arg in args:
 val += arg
 return val

Оценка:

  • Быстрый интервью Вопрос, чтобы проверить знание переменных аргументов и как настроить одну из самых основных функций.

Вопрос 2:

Вопросы вокруг серии FIBONACCI – это классика интервью программирования, а кандидаты должны в целом, по крайней мере, знакомы с ними. Они позволяют проверить рекурсивное мышление.

Вопрос: Последовательности Фибоначчи определяются как следует следующие:

F\_0 = 0 ; F\_1 = 1
F\_n = F\_{-1} + F\_{-2}

Напишите функцию, которая дает сумму всех чисел фибоначчи от 0 до n.

Отвечать:

def fibonacci(n: int) -\> int:
 # fib series don't exist \< 0 
 # might want to throw an error or a null 
 # for that
 if n \<= 0: 
 return 0
 if n == 1: 
 return 1
 else:
 return fibonacci(n-1) + fibonacci(n-2)

def naiveFibSum(n: int) -\> int:
 return sum([fibonacci(x) for x in range(0, n+1)])

def sumFib(n: int) -\> int:
 return fibonacci(n + 2) -1

Оценка:

  • Во-первых, кандидат может думать рекурсивно?
  • Кандидат только думает о наивном решении суммы серии FIBONACCI или он понимает, что он также может обобщить до более эффективного способа?

Заворачивать

Эти вопросы предназначены для того, чтобы быть первым скринингом для ученых данных и должны сочетаться со статистическими типовыми типами вопросов манипуляций. Они предназначены для быстрого взгляда на то, у кандидата есть основные минимальные знания, чтобы пройти через полное интервью.

Более современные программированные вопросы для Python будут иметь тенденцию покрывать использование генераторов, декораторов, циска или эффективного использования библиотек, таких как Pandas/Numpy.

Больше от меня на Хакерская аналитика :

Оригинал: “https://dev.to/julienkervizic/python-screening-interview-question-for-datascientists-30g4”