Python вопросы с собеседований
25K subscribers
511 photos
18 videos
17 files
409 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
🖥 Что будет в результате выполнения данного кода?

Ответ:
Данный код выдаст в виде результата пустой список [], а ошибка IndexError не возникнет.

Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция list[10] в списке выше), приводит к ошибке IndexError. Однако, попытка получить доступ к срезу списка с начальным индексом, превышающем количество элементов в списке, не приведет к IndexError и просто вернет пустой список.

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


@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 В каких областях питон имеет преимущество?

Лучше всего питон использовать в следующих областях:
- веб-приложения
- графические интерфейсы пользователя для настольных ПК
- научные и арифметические приложения
- разработка ПО
- разработка программ обучения
- приложения для бизнеса
- сетевые приложения
- игры, 3D-графика

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Какая разница между Series и dataframe?

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

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите в одну строку, как можно получить самую позднюю по значению букву в строке.

Ответ

Значение буквы определяется по ее коду в ASCII. Для этого подойдет функция max()

>>> max("flyiNg")
"y"


С помощью той же логики можно объяснить следующую строку кода:

>>> max("fly{}iNg")
"}"


@python_job_interview
🖥 Как вставить объект, чтобы он оказался под определенным индексом?

Ответ


Сначала создадим список:

>>> a=[1, 2, 4]
Затем используем метод insert(). В нем первым аргументом будет индекс, под которым вставляется объект, а вторым — значение объекта:

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


@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Если мы не поставим двоеточие в конце строки для цикла "do-while", он все равно сработает?

Ответ


В питоне такой цикл не реализован. Это вопрос из тех, которые с подвохом, когда упоминают элементы других языков.

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🌃 Big Data - действительно полезный блог для всех, кто работает с данными на Python.

- огромный набор бесплатных наборов данных
- инструменты для работы с данными
- обучающие материалы для датасаентистов
- перевод книг и статей

🔥 Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Расскажите про методы __str__ и __repr__

Оба метода переводят класс в строку, но у них есть небольшая разница.

str — используется для красивого вывода информации об объекте. Вызывается, например, функциями print() и format().

repr — выводит подробную об информацию об объекте, очень полезно при отладке. Бывает, можно получить такой же объект, если запихнуть результат в eval(str).

Если метод str не определён, то используется repr и наоборот.

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Можете назвать десять встроенных функций питона?

Функция complex() создает комплексное число:

>>> complex(3.5,4)
(3.5+4j)

Функция eval() исполняет строку:

>>> eval("print(max(22,22.0) — min(2,3))")
20

Функция filter() отфильтровывает элементы, для которых заданное условие верно.

>>> list(filter(lambda x: x%2 == 0,[1, 2, 0, False]))
[2, 0, False]


Функция format() помогает задать формат строки:

>>> print("a = {0} but b = {1}".format(a, b))
a = 2 but b = 3

Функция hash() возвращает хэш-значение объекта:

>>> hash(3.7)
644245917

Функция hex() преобразовывает число в шестнадцатеричное число:

>>> hex(14)
"0xe"

Функция input() читает ввод и возвращает строку:

>>> input("Enter a number")
Enter a number7
"7"

Функция len() возвращает число, показывающее длину строки:

>>> len("Ayushi")
6

Функция locals() возвращает словарь с локальной таблицей имен:

>>> locals()
{"__name__": "__main__", "__doc__": None, "__package__": None, "__loader__": <class "_frozen_importlib.BuiltinImporter">, "__spec__": None, "__annotations__": {}, "__builtins__": <module "builtins" (built-in)>, "a": 2, "b": 3}

Функция open() открывает файл:

>>> file = open("tabs.txt")

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Что такое pickle?

Ответ

Pickle — это модуль сериализации и десериализации объектов в Python.

В примере ниже мы сериализуем и десериализуем список словарей:

import pickle

obj = [
{'id':1, 'name':'Stuffy'},
{'id':2, 'name': 'Fluffy'}
]

with open('file.p', 'wb') as f:
pickle.dump(obj, f)

with open('file.p', 'rb') as f:
loaded_obj = pickle.load(f)

print(loaded_obj)
#=> [{'id': 1, 'name': 'Stuffy'}, {'id': 2, 'name': 'Fluffy'}]


Еще вопрос о pickle

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как увеличить и уменьшить целое число в Python?

Ответ


Инкремент и декремент можно сделать с помощью += и -=

value = 5

value += 1
print(value)
#=> 6

value -= 1
value -= 1
print(value)
#=> 4



@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 В чем разница между append и extend?

append добавляет значения в список, а extend добавляет в список значения из другого списка

a = [1,2,3]
b = [1,2,3]

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

b.extend([4,5])
print(b)
#=> [1, 2, 3, 4, 5]


@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Почему мы используем enumerate() при итерации последовательности?

Ответ

enumerate() позволяет отслеживать индекс при итерации последовательности. Это более нативный способ, чем определение и приращение целого числа, представляющего индекс:

li = ['a','b','c','d','e']

for idx,val in enumerate(li):
print(idx, val)
#=> 0 a
#=> 1 b
#=> 2 c
#=> 3 d
#=> 4 e


@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Преобразуйте следующий цикл for в генератор списков (list comprehension)

Дан следующий цикл for:

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

a2 = []
for i in a:
a2.append(i + 1)
print(a2)
#=> [2, 3, 4, 5, 6]


Результат:

a3 = [i+1 for i in a]

print(a3)
#=> [2, 3, 4, 5, 6]


Генератор списка обычно считается более каноническим способом в Python, если он остается понятным.

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как разбить список на фрагменты и разделить его на меньшие части.

Ответ

def chunk(my_list, size):
return [my_list[i:i+size] for i in range(0,len(my_list), size)]
my_list = [1, 2, 3, 4, 5, 6]
chunk(my_list, 2) # [[1, 2], [3, 4], [5, 6]]


Пишите свои варианы в комментариях

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Задание от Сбербанка

В этой таблице безымянная частичная выгрузка перемещения пользователей по сайту. Один user_id — один пользователь. Расскажите нам всё, что сможете понять по такой выгрузке

Проведите когортный анализ (за основу для когорты можно взять неделю регистрации), подсчитайте ориентировочный срок жизни клиента/когорты оцените популярность отдельных материалов и форматов

Попробуйте определить общие паттерны у тех пользователей, кто перестал учиться на платформе, и у тех, кто продолжает учиться. Вероятно, на основе этих данных вы сможете сделать предложения по адаптации платформы? Каких данных вам не хватает, чтобы провести более детальный анализ?

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

⭐️ Датасет
🖥 Решение

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Задание на позицию Backend-разработчик на python

Напишите код, который будет рассчитывать угол между часовой и минутной стрелкой в заданное время. Данная задача покажет логическое мышление кандидата, и как быстро он сможет придумать решение.

Решение

def calc_angel(t: datetime.time) -> float:
h = t.hour
if h > 12:
h -= 12
hour_angle = 0.5 * (h * 60 + t.minute)
minute_angle = 6 * t.minute
angle = abs(hour_angle - minute_angle)
return min(angle, 360 - angle)


❤️ , если вам нравятся практические задачи

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Что делать если нужно перехватить исключение, выполнить действия и опять возбудить это же исключение.

Ответ
Для того, чтобы в обработчике исключения выполнить определённые действия, а затем передать исключение дальше, на один уровень обработчиков выше (то есть, выбросить то же самое исключение ещё раз), используется ключевое слово raise без параметров.

try:
1 / 0
except ZeroDivisionError:
# some logic
raise

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM