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
Открытый вопрос о качестве задач. В комментариях к этому посту ждем от вас любой критики, конструктивной и не очень.

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

С уважением,
админы
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, ...).
include="all" принудительно выводит статистику для всех типов столбцов: counts/unique/top/freq для объектов, percentiles для чисел.
👍1👎1
Как создать целочисленную переменную 5?
Anonymous Quiz
12%
x = int(5)
13%
x = 5
75%
Все варианты верны
💊4👍2🤡2👎1
Аллен Б. Дауни «Основы Python»:

«Переменные создаются в момент присвоения значений, и типы определяются динамически во время выполнения. Когда вы выполняете присвоение x = 5, Python автоматически создает переменную x как целое число. Это значит, что вы можете использовать как явное преобразование, так и непосредственное присваивание:

a = int(5) # Явное преобразование
b = 5 # Прямое присваивание

Оба способа сработают, создавая переменные целочисленного типа»
3