TGViewer
Channel Public Channel
Python: задачки и вопросы

Python: задачки и вопросы

@quiz_python

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

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

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

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

Другие наши проекты: https://tprg.ru/media
Subscribers
6.92K
Photos
1.4K
Videos
1
Links
127

Showing posts older than #3747 · Back to latest

Older Posts 20 shown
Post #3745 1.28K
На финальном шаге операции импортирования выполняется байт-код модуля. Все операции в файле выполняются по очереди, от начала до конца, и любые присваивания именам на данном шаге генерируют атрибуты результирующего объекта модуля. Так создаются инструменты, определяемые кодом модуля. Скажем, операторы def в файле запускаются на стадии импортирования для создания объектов функций и их присваивания атрибутам внутри объекта модуля. Функции затем вызываются в файлах, импортирующих файл модуля.

Из-за того, что последний шаг импортирования фактически выполняет код файла, если любой код верхнего уровня в файле модуля делает реальную работу, то ее результаты будут видны во время импортирования. Например, операторы print верхнего уровня в модуле отображают вывод при импортировании файла. Операторы def для функций просто определяют объекты для использования в будущем.
Post #3743 1.15K
#ловушка
Post #3742 1.13K
enumerate(sequence, start=0)

Возвращает генератор, отдающий пары счётчик-элемент для элементов последовательности sequence. Начальное значение счетчика можно задать с помощью start.
Post #3740 1.27K
Одна из новых возможностей, появившихся в Python 3.7, — классы данных (Data classes). Эти классы предназначены для автоматизации генерации кода, который используется для хранения данных.

Многие разработчики сталкиваются с необходимостью создавать подобные классы:


class RegularGuitar:
def __init__(self, brand, model):
self.brand = brand
self.model = model


Уже на этом примере можно заметить избыточность: идентификаторы brand и model повторяются несколько раз. Более сложный класс может также содержать переопределенные методы eq и repr.

Для упрощения процесса создания таких классов модуль dataclasses предлагает декоратор @dataclass. С его помощью аналогичный код будет выглядеть так:


from dataclasses import dataclass

@dataclass
class Guitar:
brand: str
model: str


Теперь классы стали более читаемыми и лаконичными, а также сохраняют важные методы, такие как __eq__ и __repr__, которые автоматически генерируются.
Post #3738 1.27K
После того, как посредством обхода пути поиска модулей найден файл исходного кода, соответствующий оператору import, Python при необходимости компилирует его в байт-код.

Файлы байт-кода вынесены в отдельный подкаталог pycache и содержат в своих именах версию Python во избежание конфликтов и перекомпиляции, когда в системе установлено множество версий Python.

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

Байт-код файлов верхнего уровня применяется внутренне и отбрасывается; байт-код импортированных файлов сохраняется в файлах для ускорения будущих операций импортирования.
Post #3734 1.42K
pandas.Series.between возвращает логическое значение Series, эквивалентное left <= series <= right. При обработке Series возвращает эквивалентную серию, состояющую из True / False.

Документация

Однако чтобы отфильтровать датафрейм по числовому столбцу, можно использовать такой синтаксис:


df_filtered = df["col"].between(1983, 1986)
Post #3731 1.22K
#размяться
Post #3730 1.27K
Операторы return (и yield) в функциях Python необязательны. Когда функция не возвращает значение явно, то она завершает работу, когда управление выходит за конец тела функции. Формально все функции возвращают какое-то значение; если не снабдить функцию оператором return, тогда она автоматически будет возвращать объект None:

Функции подобного рода, не содержащие return, представляют собой эквивалент Python того, что в ряде языков называется «процедурами». Они обычно вызываются как операторы, а результаты None игнорируются, т.к. работа делается без вычисления полезного результата.

Об этом стоит знать, потому что Python не будет сообщать о том, что вы пытаетесь потребить результат функции, в которой отсутствуют операторы return.
Post #3728 1.17K
#ловушка
Post #3727 1.18K
В данной задаче важно помнить, что Python — интерпретируемый язык, то есть код читается и исполняется построчно.

— Переменной X присваивается значение 99;
— В функции selector() есть ключевое слово global: X ссылается на глобальную переменную;
— В selector() выполняется команда print(X), которая сразу же обращается к глобальной переменной X, и на данный момент её значение — 99. Поэтому на этом шаге будет выведено 99.
— Затем X присваивается новое значение 88, но это произойдёт после того, как было выведено значение.
Post #3725 1.16K
#ловушка
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →