Python: задачки и вопросы
7.82K subscribers
1.18K photos
1 video
1 file
81 links
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Наиболее часто используется метод конструктора __init__ класс применяет этот метод для установки начальных значений атрибутов экземпляра и выполнения других задач начального запуска.
🤡2
Какого значения параметра fill_method в Pandas не существует?
Anonymous Quiz
25%
pad
16%
ffill
13%
zfill
45%
Все существуют
👍2👎1
Параметр fill_method позволяет задавать способ замены значений NaN. Этот параметр присутствует во множестве методов — pct_change, diff, и т.д. У метода fillna() он зовется просто method.

— forward-fill (ffill): «протащить» последнее действительное значение вперед;
— backfill (bfill): использовать следующее действительное наблюдение для заполнения пробела;
— zero-fill (zfill): заполнить пробелы нулями
— None: не обрабатывать пропуски

Важное примечание: существует отдельный метод pandas.DataFrame.pad(), он по умолчанию заливает в пустую ячейку последнее валидное значение.
👍2👎1
Открытый вопрос о качестве задач. В комментариях к этому посту ждем от вас любой критики, конструктивной и не очень.

Что смущает в постановке задач? Хватает ли контекста? Хочется ли более детальных объяснений? Возможно, некоторым тестам не хватает примера кода? За примеры будем отдельно благодарны.

С уважением,
админы
4
Что располагается в нижней части диаграммы?
Anonymous Quiz
48%
Атрибут
21%
Объект.атрибут
15%
Переменная
16%
Ничего
👎7🤨5💩3👍1
В самом низу располагается объект с его атрибутами. Код программы создает дерево объектов в памяти, где будет происходить поиск со стороны наследования атрибутов. Обращение к классу создает новый экземпляр, который запоминает свой класс, выполнение оператора class создает новый класс, а суперклассы перечисляются внутри круглых скобок в заголовке оператора class. Каждая ссылка на атрибут запускает новую процедуру восходящего поиска в дереве - даже ссылки на атрибуты self внутри методов класса.
👍3👎1
🌱 Что помещается в переменную num?
Anonymous Quiz
62%
Замыкание
10%
Генератор
19%
Декоратор
9%
Итератор
👎12👍2
Замыкание (closure) или фабричная функция это функция определяемая и возвращаемая другой функцией, при этом замыкание получает доступ к значениям и объектам в области видимости "родительской" (или объемлющей) функции независимо от того из какой области видимости происходит вызов замыкания.
💊4👎1
Всё решаете задачки по Python? Пришло время двигаться дальше и познакомиться с нечеткими числами и другими алгоритмами из теории нечетких множеств!

И уже существует инструмент, реализованный на Python, для работы с нечеткими величинами - библиотека FuzzyOps!

Проект с открытым исходным кодом FuzzyOps предоставляет работу с:

• Нечеткими числами в объектно-ориентированной парадигме;
• Нечеткую арифметику, в том числе и на GPU;
• Алгоритмы нечеткого логического вывода;
• Нечеткие методы линейной оптимизации;
• Нечеткие нейронные сети;
• Нечеткая линейная регрессия, и много других полезных функций.

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

Это #партнёрский пост
🔥4🥴3
Модуль не не поддерживает перегрузку операторов, это возможно только в классах:

class Counter:
def __init__(self, value):
self.value = value
# перегрузка оператора сложения
def __add__(self, other):
return Counter(self.value + other.value)
Абстрактный суперкласс — это класс, который вызывает метод, но не наследует и не определяет его. Он ожидает заполнения метода подклассом. Абстрактные суперклассы часто используются в качестве способа обобщения классов, когда поведение не может быть спрогнозировано до написания кода более специфического подкласса. Объектно-ориентированные фреймворки также применяют их как способ направления на определяемые клиентом настраиваемые операции.

Абстрактный метод - это только объявление метода, без его подробной реализации:


from abc import ABC, abstractmethod

class Animal(ABC):
@abstractmethod
def move(self):
pass

a = Animal()
# TypeError: Can't instantiate abstract class Animal with abstract methods move


class Animal():
@abstractmethod
def move(self):
pass

a = Animal()
🤡3👍21👎1
🔍 Как можно дополнить унаследованный метод, не замещая его полностью?
Anonymous Quiz
12%
Создать новый метод с другим именем и вызвать его вместо унаследованно
29%
Использовать декоратор @override перед определением метода в подклассе
54%
Повторно определить в подклассе, внутри этой новой версии вызвать версию метода из суперкласса с пер
4%
Никак
👍2👎2
Чтобы вместо замещения дополнить унаследованный метод, его понадобится повторно определить в подклассе, но внутри этой новой версии вручную вызвать версию метода из суперкласса с передачей ей экземпляра self: Суперкласс.метод(self, ...).