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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Код выведет "b" из-за принципа работы областей видимости LEGB и использования ключевого слова global:

1. Сначала определяется глобальная переменная x со значением "a":
x = "a"

2. Затем определяется функция outer_func(), которая объявляет x как глобальную переменную с помощью ключевого слова global:

def outer_func():
global x

3. Внутри outer_func() определяется вложенная функция nested_func(), которая просто выводит значение x:

def nested_func():
print(x)

4. После определения функций, значение глобальной переменной x изменяется на "b":
x = "b"

Благодаря объявлению global x внутри outer_func(), все обращения к x внутри этой функции (включая вложенные функции) будут ссылаться на глобальную переменную x. Когда nested_func() вызывается и пытается вывести x, она ищет значение x в следующем порядке (LEGB):
— L (Local): локальной переменной x нет;
— E (Enclosing): из-за global x в outer_func, пропускается;
— G (Global): находит x со значением "b";
— B (Built-in): не требуется.
👍2👎1
Классы всегда вкладываются внутрь модуля. Классы и модули являются пространствами имен, но классы соответствуют операторам (не целым файлам) и поддерживают такие понятия ООП, как множество экземпляров, наследование и перегрузку операций (все перечисленное модули не поддерживают). До известной степени модуль подобен классу с единственным экземпляром без наследования, который соответствует полному файлу кода.
👍2👎1
🌱 Какие из способов создания атрибута класса являются правильными?
Anonymous Quiz
21%
1
18%
2
5%
3
56%
Все верные
🍌5👍31👎1
Объяснение: Все три способа являются корректными, но создают разные типы атрибутов:
- attr1 - это атрибут класса, доступный всем экземплярам
- attr2 - это атрибут экземпляра, уникальный для каждого объекта
- attr3 - это атрибут класса, добавленный после определения класса
👎31👍1
Атрибуты экземпляра создаются посредством присваивания значений атрибутам объекта экземпляра. Они обычно создаются в функциях методов класса, реализованных внутри оператора class, с помощью присваивания значений атрибутам аргумента self (который всегда является подразумеваемым экземпляром).

Однако их тоже можно создавать присваиванием везде, где присутствует ссылка на экземпляр, даже за пределами оператора class. Обычно все атрибуты экземпляра инициализируются в методе конструктора __init__ таким образом, более поздние вызовы методов могут предполагать, что атрибуты уже существуют.
👎3👍1
self — это имя, обычно назначаемое первому (крайнему слева) аргументу в функции метода класса, который представляет собой подразумеваемый объект вызова метода. Данный аргумент НЕ обязан называться self.
3👍1👎1
🔍 Какой метод перерузки операций используется чаще всего?
Anonymous Quiz
13%
__add__
15%
__call__
66%
__init__
7%
__getitem__
👎7💩3
Наиболее часто используется метод конструктора __init__ класс применяет этот метод для установки начальных значений атрибутов экземпляра и выполнения других задач начального запуска.
🤡2
Какого значения параметра fill_method в Pandas не существует?
Anonymous Quiz
26%
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