Ответ:
Как известно, попытка доступа к элементу списка с использованием индекса, превышающего число элементов (например, операция 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 – это проиндексированный одномерный массив значений. Он похож на простой словарь типа dict, где имя элемента будет соответствовать индексу, а значение – значению записи. DataFrame — это проиндексированный многомерный массив значений, соответственно каждый столбец DataFrame, является структурой Series.
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите в одну строку, как можно получить самую позднюю по значению букву в строке.
Ответ
Значение буквы определяется по ее коду в ASCII. Для этого подойдет функция max()
С помощью той же логики можно объяснить следующую строку кода:
@python_job_interview
Ответ
Значение буквы определяется по ее коду в 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
Каким будет результат выполнения кода?
Anonymous Quiz
41%
{'x': 1} {'x': 2}
7%
{'x': 1} {'x': 1}
14%
{} {'x': 2}
5%
{'x': 2} {'x': 2}
2%
{} {}
2%
None
6%
Error
24%
Узнать ответ
Ответ
В питоне такой цикл не реализован. Это вопрос из тех, которые с подвохом, когда упоминают элементы других языков.
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
- огромный набор бесплатных наборов данных
- инструменты для работы с данными
- обучающие материалы для датасаентистов
- перевод книг и статей
🔥 Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Оба метода переводят класс в строку, но у них есть небольшая разница.
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 — это модуль сериализации и десериализации объектов в 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
Ответ
Инкремент и декремент можно сделать с помощью += и -=
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 добавляет в список значения из другого списка
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() позволяет отслеживать индекс при итерации последовательности. Это более нативный способ, чем определение и приращение целого числа, представляющего индекс:
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:
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
Forwarded from Machine learning Interview
В этой таблице безымянная частичная выгрузка перемещения пользователей по сайту. Один user_id — один пользователь. Расскажите нам всё, что сможете понять по такой выгрузке
Проведите когортный анализ (за основу для когорты можно взять неделю регистрации), подсчитайте ориентировочный срок жизни клиента/когорты оцените популярность отдельных материалов и форматов
Попробуйте определить общие паттерны у тех пользователей, кто перестал учиться на платформе, и у тех, кто продолжает учиться. Вероятно, на основе этих данных вы сможете сделать предложения по адаптации платформы? Каких данных вам не хватает, чтобы провести более детальный анализ?
Выгрузка неполная, поэтому результаты могут быть искажены. Нам важны не итоговые значения, а ход решения, который вы выберите
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите код, который будет рассчитывать угол между часовой и минутной стрелкой в заданное время. Данная задача покажет логическое мышление кандидата, и как быстро он сможет придумать решение.
Решение
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