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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
6 957
Obunachilar
-324 soatlar
-57 kunlar
-5630 kunlar
Postlar arxiv
#ловушка
#ловушка

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 — интерпретируемый язык, то есть код читается и исполняется построчно. — Переменной X присваивается значение 99; — В функции selector() есть ключевое слово global: X ссылается на глобальную переменную; — В selector() выполняется команда print(X), которая сразу же обращается к глобальной переменной X, и на данный момент её значение — 99. Поэтому на этом шаге будет выведено 99. — Затем X присваивается новое значение 88, но это произойдёт после того, как было выведено значение.

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

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

X = 99

def selector(): # Имя X используется, но не присваивается
    print(X)        # Имя X найдено в глобальной области видимости
    
selector()