Получи случайную криптовалюту за регистрацию!

IT Resume

Логотип телеграм канала @it_resume — IT Resume I
Логотип телеграм канала @it_resume — IT Resume
Адрес канала: @it_resume
Категории: Карьера
Язык: Русский
Количество подписчиков: 3.82K
Описание канала:

Платформа для подготовки к техническим собеседованиям и развития навыков. Сайт: itresume.ru

Рейтинги и Отзывы

4.00

2 отзыва

Оценить канал it_resume и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

2

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 4

2022-02-16 20:10:00 Разбор тестового задания для аналитика с [Avito Weekend Offer]

Сегодня вместе с онлайн-университетом SF Education подготовили разбор задачи по Python с [Avito Weekend Offer].

Кстати, попробуйте сначала решить эту задачу самостоятельно https://vk.cc/cb8QbP

# Задача

Вам дано 2 набора чисел arr1 и arr2 в виде списка Python. Необходимо вернуть список, состоящий из элементов пересечения. Дубликаты необходимо удалить.

Важно: Если пересечение пустое, то возвращаем пустой список.

Пример:

arr1 = [1, 2, 3], arr2 = [1, 1, 5]
Ответ: [1]

Пример:

arr1 = [1, 2, 3], arr2 = [6, 7, 5]
Ответ: []

Пример:

arr1 = [1, 2, 3], arr2 = [1, 2, 15, 3, 3]
Ответ: [1, 2, 3]

# Попытка 1

Самый простой подход - пробежаться по элементам каждого массива и проверить вхождение во второй массив. Если элемент есть в обоих массивах - добавляем к результату.


res = []
for el in arr1:
if el in arr2 and el not in res:
res.append(el)
for el in arr2:
if el in arr1 and el not in res:
res.append(el)

Очевидно, что это не самый оптимальный код - мы несколько раз пробегаемся по каждому списку, да еще и каждый раз проверяем: нет ли уже такого элемента в res.

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

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

st1 = set(arr1)

# Попытка 2

У множеств в Python есть встроенный метод intersection - он как раз находит пересечение двух множеств.

Таким образом, решение задачи сводится к следующему:

1. Переводим оба списка в множества
2. С помощью метода intersection находим пересечение
3. На выходе intersection получается снова множество, поэтому переводим его в список с помощью функции list

Итоговый код:

def PureIntersection(arr1, arr2):
return list(set(arr1).intersection(set(arr2)))
306 views17:10
Открыть/Комментировать
2022-02-12 20:17:00 ​​Что такое CodeCoins?

CodeCoins - внутренняя валюта на платформе IT Resume. За нее вы можете покупать некоторые задачи, тесты, подсказки и решения!

Подробнее о том, как получить ее бесплатно, тут https://vk.cc/caSkOK
232 views17:17
Открыть/Комментировать
2022-02-11 20:10:00
Задача с собеседования по Python [СБЕР]

Разместили на платформе новую задачу с собеседования по Python на должность Junior Data Engineer & Data Science.

Подробнее здесь https://vk.cc/caVejr
366 views17:10
Открыть/Комментировать
2022-02-10 20:10:01
339 views17:10
Открыть/Комментировать
2022-02-10 20:10:00 Как правильно писать документацию для кода на Python?

Есть несколько основных способов задокументировать свой код и сделать его более понятным:

→ Обычные комментарии
→ Докстринги
→ Полноценная документация

Давайте рассмотрим каждый способ в отдельности.

ОБЫЧНЫЕ КОММЕНТАРИИ

Обычные комментарии - части кода, которые начинаются в Python с решетки # и содержат небольшие пояснительные сообщения.

Например:

# проверяем тип полученного ответа
if isinstance(response): …

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

ДОКСТРИНГИ

Докстринг (строка документации) - это однострочный или многострочный строковый литерал, разделенный тройными одинарными или двойными кавычками """""" в начале модуля, класса, метода или функции, который описывает, что делает функция.

Только в случае, если это первый оператор в функции, он может быть распознан Python и доступен как атрибуты с помощью метода doc или функции help().

Пример смотрите в карточках


Докстринги могут быть как однострочными, так и многострочными.

Однострочные докстринги обычно дают саммари - кратко описывают: что функция делает и что возвращает. Для шаблона используйте фразу «делает то, возвращает это».

В многострочных докстрингах принято описывать:

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

Примеры однострочного и многострочного докстринга ищите в карточках!


SPHINX

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

Этот стиль является стандартом в Python.

Основные ключевые слова Sphinx:

→ param и type: значение параметра и тип его переменной
→ return и rtype: возвращаемое значение и его тип
→ :raises: описывает любые ошибки, которые возникают в коде
→ .. seealso::: информация для дальнейшего чтения
→ .. notes::: добавление заметки
→ .. warning::: добавление предупреждения

Общая структура документации Sphinx подробно расписана, как вы уже поняли, в карточках


Пользоваться документацией Sphinx в повседневной жизни очень просто.

В IDE PyCharm от JetBrains это идет по умолчанию - достаточно начать писать докстринг и нажать Enter.

Чтобы использовать Sphinx в VS Code, сделайте так:

1. Установите расширение Python Docstring Generator

2. Как только вы начнете набирать докстринг, IDE предложит вам Generate Docstring. По умолчанию генерируется Sphinx. Поменять тип можно в настройках расширения
301 views17:10
Открыть/Комментировать
2022-02-08 21:10:45
Как сделать экселевский ВПР (VLOOKUP) с помощью Pandas?

Типичная задача: дано 2 датафрейма и необходимо связать их по ключу. Как сделать это в Excel, уже наверно все знают - на помощь приходит функция ВПР. А как быть в Pandas? На помощь приходит функция merge!

Сегодня вместе с онлайн-университетом SF Education разобрали, как пользоваться Pandas-функцией merge, какие у нее параметры и как это работает на реальном примере.

Кстати, а вам часто приходится решать задачи, которые раньше решали вручную в экселе, с помощью Pandas?
249 views18:10
Открыть/Комментировать
2022-02-06 14:30:06 ​​ Про личную эффективность и как все успевать?

Недавно в телеграм-канале Федора Борщева, предпринимателя и программиста, поднимался вопрос личной эффективности. Федор делился собственным опытом и нам показалось это интересным, ведь такая проблема стоит у любого IT-специалиста.

Вот, что пишет Федор:


12 дел в день

Одна из областей жизни, которая радикально поменялась у меня при переходе в предпринимательство — это продуктивность. Вернее даже не поменялась, а развалилась нахрен — ГТД в чистом виде не справляется с неопределённостью, которую дают два моих бизнеса. В тяжёлые моменты показатели продуктивности выглядели страшно — каждый новый день в things начинался с 10-15 незакрытых вчера задач. Потупил полдня — лови ещё 20 задач в очереди. Количество встреч тоже зашкаливало — 8 встреч в день было нормой.

К счастью, мне хватило ума не искать новую методику продуктивности, не уезжать в Тибет и не нанимать тренера личной эффективности, а ввести ограничения, которые сильно сократили количество переработок — делать за день не больше 12 дел и проводить в неделю не больше 15 встреч.

Когда жёстко ограничиваешь количество работы, начинаешь более тщательно относиться к выбору задач. К примеру, я почти перестал делать задачи просто ради того, чтобы их сделать. Если уж я и пишу код — я его пишу не чтобы зарелизить фичу, а чтобы показать команде новую технологию или подход. Если я прихожу на встречу с клиентом — я прихожу, чтобы сократить себе, команде и клиенту объём работы, а не послушать отчёт о статусе проекта.


В комментариях писали разное: что отдыхать надо больше; что количество встреч не зависит от нас - как руководство скажет, так и будет; что максимум, сколько можно сделать: 3-4 дела в день и так далее.

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

Поделитесь своим опытом в комментариях - какие методики вы используете? Как распределяете время и соблюдаете work-life balance?
360 views11:30
Открыть/Комментировать
2022-02-04 20:10:00 Решаем задачу на Python тремя способами: от Junior до Senior

Формулировка задачи

Дан список arr с произвольным количеством элементов. Необходимо написать функцию tuple_creator, которая вернет список кортежей, каждый из которых будет содержать порядковый номер и элемент списка arr. При этом нумерацию нужно начинать не с нуля, а с некоторого заданного числа n.

Пример:

Дано:
arr = ['aaa', 125, 'bbb'],
n = 3

Результат:
[(3,'aaa'),(4,125),(5,'bbb')]


Попробуйте решить задачу до того, как посмотрите наши варианты решения Ссылка на задачу https://vk.cc/caNCl1

Вариант 1: Junior

Самый простой вариант решения задачи:

1. Найти длину исходного массива
2. В цикле for получить индексы каждого элемента
3. Добавить к результату кортеж из индекса и соответствующего элемента

class Answer:
def tuple_creator(self, arr, n):
# создаем пустой
список для записи
результата
res = []
# вычисляем длину
массива
l = len(arr)
# проходимся по всем
элементам массива
for i in range(l):
# добавляем к
результату
кортеж
(индекс,
значение)
res.append((i+n, arr[i]))
return res


Минусы такого решения:

- Нахождение длины массива - лишняя операция
- Конструкция range(len(l)) - плохой стиль
- Получение элементов через arri - зачастую плохой стиль

Вариант 2: Middle

Если вспомнить про существование функции enumerate, то можно существенно «облагородить» код.

class Answer:
def tuple_creator(self, arr, n):
# создаем пустой
список для записи
результата
res = []
# проходимся по всем
элементам массива
enumerate также
вычисляет индекс
for i, el in enumerate(arr):
# добавляем к
результату
кортеж (индекс,
значение)
res.append((i+n, el))
return res


Минусы такого решения:

- Все еще присутствует цикл for
- Кусок кода с append напрашивается на оптимизацию :)
- В начале мы создаем пустой список

Вариант 3: Senior

Настоящий спец в Python вспомнит также, что функция enumerate принимает необязательный аргумент start, а с помощью list можно избавиться от создания пустого списка и операции append.

class Answer:
def tuple_creator(self, arr, n):
return list(enumerate(arr, start = n))
328 views17:10
Открыть/Комментировать
2022-02-04 20:10:00
328 views17:10
Открыть/Комментировать
2022-02-02 12:16:43
7 самых важных оконных функций SQL

Практически любая боевая задача на SQL предполагает использование оконных функций. Особенно это must have при анализе данных.

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

Сегодня вместе с онлайн-университетом SF Education разобрали 7 самых важных оконных функций. Рассматриваем как классический ROW_NUMBER, так и NTILE и даже использование агрегатных функций, как оконных. Подробнее - в традиционных карточках
546 views09:16
Открыть/Комментировать