Data Science: примеры задач для вступительных испытаний в Эльбрус Буткемп
Если вы решите эти задачи — вы готовы к поступлению в буткемп на направление Data Science! Проверьте свои силы и узнайте, сможете ли пройти вступительное техническое интервью.
Каждый будущий студент буткемпа должен пройти вступительные испытания, чтобы поступить в Эльбрус. Для направления Data Science оно одно — техническое интервью с куратором или ментором направления в Zoom. Интервью длится 1 час и состоит из 4 этапов:
- Знакомство: экзаменатор представляется и делится своим опытом перехода в IT, а затем сдающий рассказывает о своей мотивации перейти в IT и выборе специальности
- Устный ответ: 1 базовый вопрос по теории вероятностей и статистике
- Проверка теории: вопросы по основам языка Python
- Live coding: решение двух задач разного уровня сложности на языке Python.
Во время решения задач вам будет необходимо включить демонстрацию экрана в Zoom, чтобы экзаменатор видел процесс вашего кодинга в режиме реального времени и мог задавать вопросы.
Совет: перед интервью выберите IDE (например VSCode или PyCharm) и установите его на свой ПК. Или же воспользуйтесь облачными средами разработки, такими как Google Colab или Jupyter Notebook, которые позволят вам работать в браузере.
Возможные теоретические вопросы на интервью и советы по подготовке вы найдете тут. А в этой статье мы собрали 3 практические задачи, похожие на те, что вам придется решать на техническом интервью. Проверьте свои знания прямо сейчас ↓
Задача №1
Напишите функцию на языке Python, которая возвращает сумму значений списка, встречающихся не более одного раза. Например, если список состоит из значений 3, 4, 3, 6, функция возвратит значение 10, что будет являться суммой 4 и 6, так как значение 3 встречается дважды.
Решение задачи №1
* Пропустите этот пункт, если хотите попробовать решить задачу самостоятельно, и вернитесь к нему после решения.
# Записываем массив в переменную
list_number = [3, 4, 3, 6]
def sum_no_duplicates(l):
# Инициализируем переменную для хранения результата
s = 0
# Пробегаемся циклом по всем элементам списка
for i in l:
# Делаем проверку: если текущий элемент в списке встречается только один раз
if l.count(i) == 1:
# Складываем результат с текущим элементом списка
s += i
# Возвращаем результат
return s
# Передаем переменную с нашим массивом в функцию
result = sum_no_duplicates(list_number)
# Выводим результат в консоль
print(result)
# В консоли видим число 10, что и является нашим ответом к задаче
Практическая польза задания: пригодится будущим Data Scientist и аналитикам данных в процессе анализа данных, когда нужно учитывать только неповторяющиеся элементы. Например, когда стоит задача посчитать уникальных пользователей сайта или приложения.
Задача №2
Напишите функцию на языке Python, которая принимает на вход строку и возвращает самое длинное слово. Условие: длина всех слов разная. Например, для строки «эти мягкие французские булочки» результатом будет слово «французские».
Решение задачи №2
# Записываем наше предложение в переменную
our_string = 'эти мягкие французские булочки'
# Начинаем писать нашу функцию
def longest_word_loop(sentence):
# Разделяем исходный текст на список слов — записываем список слов в words
words = sentence.split()
# Объявляем пустую переменную — слово максимальной длины
max_word = ''
# Пробегаемся по всем словам в списке
for word in words:
# Если длина текущего слова больше длины max_word
if len(word) > len(max_word):
# Перезаписываем длинное слово
max_word = word
# Возвращаем результат
return max_word
# Распечатываем результат вызова функции в консоли
print(longest_word_loop(our_string))
# Видим желаемый результат: французские
Практическая польза задания: поиск длинного слова — задача, которая часто встречается при анализе текста. Навык решения этой задачи может быть полезен при поиске опечаток в текстах: если среди введенных слов оказывается слишком длинное, то, возможно, был пропущен пробел.
Задача №3
На вход функции на языке Python поступают три значения: start — начало последовательности, end — конец последовательности, step — шаг последовательности. Необходимо построить последовательность с учетом введенных параметров и вернуть её сумму. Например, если значения 2, 6, 2, то функция вернет сумму 12.
Решение задачи №3
# Начинаем писать нашу функцию
def sequence_sum(start, end, step):
# Создаем последовательность с помощью функции range,
# Записывае end+1, потому что последний элемент в этой функции не включается в последовательность
r = range(start, end+1, step)
# Возвращаем сумму последовательности с помощью функции sum
return sum(r)
# Передаем последовательность в функцию и выводим результат в консоль
print(sequence_sum(2,6,2))
# Обратите внимание, что мы передаем три числа через запятую, а не переменную с этими числами
# Так как функции необходимо получить именно три параметра на входе
# Получаем желаемый резлультат: 12
Практическая польза задания: построение последовательностей — регулярная часть программирования в целом. Этот навык пригождается, когда есть задача найти конкретные элементы: четные, нечетные, каждый пятый и так далее. Например, мы хотим подсчитать число пользователей, которые приходят к нам на сайт по воскресеньям. Нам дан список значений по каждому дню за длинный период (при этом данные начали заноситься с понедельника). Построив последовательность, которая забирает каждый 7-ой элемент из входящего списка, мы сможем достать только те значения, которые соответствуют воскресеньям.
* Подготовиться к вступительному испытанию и обучению в буткемпе, а также освоить базу знаний о работе с Python вам поможет двухнедельный курс «Основы Python в Data Science».