Найти в Дзене
Задачи

Задачи

Публикуем популярные задачи с собеседования, и вместе разбираем решения!
подборка · 9 материалов
Вопрос из собеседования. Почему этот код выведет ошибку? Сначала анализируем цепочку вызовов, отличая методы класса от обычных функций. Определяем что такое a и b. Параметр а - это метод класса. А определяется в момент создания класса. b — это функция, потому что она присваивается атрибуту экземпляра класса. Далее вспоминаем, что вызов метода применительно к экземпляру класса = вызову метода применительно к классу с первым аргументом в качестве экземпляра. Например, c.method() - это тоже самое, что и C.method(c). Когда мы вызываем c.a() мы получаем C.a(c). Тут в качестве аргумента self (такое имя нужно, чтобы запутать) в метод передастся экземпляр класса. Внутри a вызывается функция b, которой нужен аргумент, т.к. она задана как lambda self: None. Если b - это обычная функция, то передачи экземпляра в качестве аргумента не произойдёт. В итоге функция вызывается без аргумента. Ответ: ошибка возникает потому, что функции b не передан аргумент. Не забудьте подкрепить ответ вышеприведенными доводами, и тогда работодатель увидит ваши аналитические способности и примет на работу.
Учимся оценивать задачу программиста
Давайте научимся распределять усилия и грамотно прогнозировать время на решение задачи. Составили чек-лист по оценке предстоящей работы Частое заблуждение разработчиков - думать, что их работа - кодить. Это не так. Задача программиста решать проблемы. Кодинг - заключительная часть решения проблемы. Если понять это, то подход к работе изменится, появится цель и видение конечного продукта. 2. Узнайте что именно вы будете делать Разберитесь с тем, что должно получиться на выходе. Пообщайтесь с тимлидом и менеджерами, чтобы иметь представление о конечном продукте...
Учимся оценивать задачу
Давайте научимся распределять усилия и грамотно прогнозировать время на решение задачи. Составили чек-лист по оценке предстоящей работы 1. Определитесь зачем вы выполняете эту задачу Частое заблуждение разработчиков - думать, что их работа - кодить. Это не так. Задача программиста решать проблемы. Кодинг - заключительная часть решения проблемы. Если понять это, то подход к работе изменится, появится цель и видение конечного продукта. 2. Узнайте что именно вы будете делать Разберитесь с тем, что должно получиться на выходе...
Задача с ветвлением, но без If и try except
Условия задачи: У нас есть цепочка символов. Нужно получить сумму. Например: sum (5)() Получаем 5 sum (10)(7)() Получаем 17 sum (10)(7)(-7)() Получаем 10 Ветвление с помощью IF Замена IF на try except Напомним условие задачи У нас есть цепочка символов. Нужно получить сумму. Например: sum (5)() Получаем 5 sum (10)(7)() Получаем 17 sum (10)(7)(-7)() Получаем 10 Мы предложили такой способ решения Понятно, что вышеперечисленные способы - первое, что приходит на ум, когда просят решить подобную задачу...
Ты не правильно замеряешь время в Python!
Все, кто программирует на Python знают функцию time.time() и замеряют время с ее помощью. Сегодня мы убедимся, что это не правильно. Начнем с простого примера: Ожидаемо, что скрипт выводит 10 секунд. При этом время, установленное на компьютере: Теперь запускаем скрипт и переведем время на несколько часов вперед: В итоге получаем 18000 секунд, хотя прошло всего 10: Возникает вопрос как бороться с возникшей на пустом месте проблемой? Решается она довольно просто. Используем вместо time.time() time...
Разбор интересной задачи с собеседования
Задача У нас есть цепочка символов. Нужно получить сумму. Например: sum (5)() Получаем 5 sum (10)(7)() Получаем 17 sum (10)(7)(-7)() Получаем 10 Решаем sum - вызываемый объект. Мы будем использовать функцию. В функцию sum() передается аргумент и эта функция возвращает новую функцию. Новая функция может быть вызвана без аргументов (как в примере 1) или с другими аргументами (примеры 2 и 3). Эта функция снова вернет новую функцию. Образуется цепочка. def sum (number): #Функция sum принимает на вход некое число return #Исходя из абзаца выше функция sum должна возвращать функцию...