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

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

رفتن به کانال در Telegram

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media

نمایش بیشتر
7 127
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+67 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
Байт-код сохраняется в файлах внутри того же самого каталога, где находятся соответствующие файлы исходного кода, обычно с расширением . рус (например, module.рус). Файлы байт-кода также внутренне снабжаются меткой с номером версии Python, в которой они создавались (известной разработчикам как «магическое» поле), поэтому Python известно о том, что они должны быть заново скомпилированы, когда программа запускается под управлением другой версии Python. Скажем, если вы провели модернизацию до новой версии Python, где байткод отличается, тогда все ваши файлы байт-кода автоматически перекомпилируются из-за несовпадения номеров версий даже при отсутствии каких-либо изменений в исходном коде.

Будет ли пересобран байт-код модуля module.pyc, если изменить версию Python?
Anonymous voting

Байт-код сохраняется в файлах внутри того же самого каталога, где находятся соответствующие файлы исходного кода, обычно с расширением . рус (например, module.рус). Файлы байт-кода также внутренне снабжаются меткой с номером версии Python, в которой они создавались (известной разработчикам как «магическое» поле), поэтому Python известно о том, что они должны быть заново скомпилированы, когда программа запускается под управлением другой версии Python. Скажем, если вы провели модернизацию до новой версии Python, где байткод отличается, тогда все ваши файлы байт-кода автоматически перекомпилируются из-за несовпадения номеров версий даже при отсутствии каких-либо изменений в исходном коде.

На финальном шаге операции импортирования выполняется байт-код модуля. Все операции в файле выполняются по очереди, от начала до конца, и любые присваивания именам на данном шаге генерируют атрибуты результирующего объекта модуля. Так создаются инструменты, определяемые кодом модуля. Скажем, операторы def в файле запускаются на стадии импортирования для создания объектов функций и их присваивания атрибутам внутри объекта модуля. Функции затем вызываются в файлах, импортирующих файл модуля. Из-за того, что последний шаг импортирования фактически выполняет код файла, если любой код верхнего уровня в файле модуля делает реальную работу, то ее результаты будут видны во время импортирования. Например, операторы print верхнего уровня в модуле отображают вывод при импортировании файла. Операторы def для функций просто определяют объекты для использования в будущем.

Что выведет код?
Anonymous voting

#ловушка
#ловушка

enumerate(sequence, start=0) Возвращает генератор, отдающий пары счётчик-элемент для элементов последовательности sequence. Начальное значение счетчика можно задать с помощью start.

Можно ли во встроенной функции enumerate() задать начальное значение?
Anonymous voting

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

Что делает декоратор @dataclass?
Anonymous voting

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

Зачем в проекте нужна директория __pycache__?
Anonymous voting

Допускается ли абсолютный путь до модуля в import-выражении?
Anonymous voting

Что такое модуль?
Anonymous voting

pandas.Series.between возвращает логическое значение Series, эквивалентное left <= series <= right. При обработке Series возвращает эквивалентную серию, состояющую из True / False. Документация Однако чтобы отфильтровать датафрейм по числовому столбцу, можно использовать такой синтаксис:
df_filtered = df["col"].between(1983, 1986)

Ваш Python-код пугает коллег? Код с нечитаемыми переменными, бесконечными if-else, костыли в асинхронности… Всё работает, но
Ваш Python-код пугает коллег? Код с нечитаемыми переменными, бесконечными if-else, костыли в асинхронности… Всё работает, но почему-то страшно. Вы точно хотите поддерживать этот хаос? На открытом вебинаре «Страх и ненависть в кодовой базе» 26 февраля в 20:00 (мск) будут разбираться такие темы: — самые ужасные ошибки Python-разработчиков; — как написать код, который не стыдно показать коллегам; — лучшие практики и антипаттерны промышленной разработки. Всем участникам — скидка на большое обучение «Python Developer. Professional». Регистрация открыта: https://otus.pw/bdBY/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576. ERID: 2W5zFGEzdyi

Что выведет код выше? Полные варианты ответа на картинке
Anonymous voting

#размяться
#размяться

Операторы returnyield) в функциях Python необязательны. Когда функция не возвращает значение явно, то она завершает работу, когда управление выходит за конец тела функции. Формально все функции возвращают какое-то значение; если не снабдить функцию оператором return, тогда она автоматически будет возвращать объект None: Функции подобного рода, не содержащие return, представляют собой эквивалент Python того, что в ряде языков называется «процедурами». Они обычно вызываются как операторы, а результаты None игнорируются, т.к. работа делается без вычисления полезного результата. Об этом стоит знать, потому что Python не будет сообщать о том, что вы пытаетесь потребить результат функции, в которой отсутствуют операторы return.

Что выведет код выше? (Полные варианты на картинке)
Anonymous voting

Python: задачки и вопросы - آمار و تحلیل کانال تلگرام @quiz_python