Веб-версияОткрыть в Telegram
PPython | Готовимся к собесам

Python | Готовимся к собесам

@python_qu · канал · Технологии · в индексе с 2026-07-05
444подписчиков−6 за неделю
137постов в индексе
P
Python | Готовимся к собесам
Есть ли в Python оператор switch-case? В Python нет прямого оператора switch-case, как в других языках программирования. Однако, начиная с версии Python 3.10, появилась возможность использовать оператор match-case, который является аналогом switch-case в других языках. Он позволяет проверять значения на соответствие определенным шаблонам и выполнять соответствующее действие в зависимости от того, какой шаблон соответствует значению. Пример использования оператора match-case: def process_value(value): match value: case 1: print("Value is 1") case 2 | 3 | 4: print("Value is 2 or 3 or 4") case _: print("Value is not 1 or 2 or 3 or 4") process_value(1) # output: Value is 1 process_value(3) # output: Value is not 1 or 2 Оператор match-case доступен только в версии Python 3.10 и выше, поэтому если вы используете более старую версию Python, то нужно воспользоваться другими способами для решения задачи, например, использовать условные выражения if-elif-else или словари. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥2🤯1
1 · 140 ·
P
Python | Готовимся к собесам
Как создать свой собственный пакет в Python? Ответ: Для создания своего собственного пакета в Python нужно выполнить следующие шаги: Создать директорию с именем вашего пакета. Внутри директории создать файл init.py, который будет пустым, но он необходим, чтобы Python распознал эту директорию как пакет. Создать необходимые модули и скрипты внутри директории вашего пакета. Определить файл setup.py с метаданными вашего пакета и его зависимостями, например: from setuptools import setup, find_packages setup( name='mypackage', version='1.0', packages=find_packages(), install_requires=['numpy', 'scipy'] ) Создать дистрибутив вашего пакета, выполнив команду python setup.py sdist Установить свой пакет с помощью pip, выполнив команду pip install dist/mypackage-1.0.tar.gz. После этого вы можете использовать свой пакет в своих проектах или опубликовать его на Python Package Index (PyPI) для использования другими людьми. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
❤2🔥1
129 ·
P
Python | Готовимся к собесам
Как передать необязательные или ключевые параметры из одной функции в другую? В Python для передачи необязательных параметров в функцию используется синтаксис со знаком звездочки (*) и двойной звездочки (**). Вот пример: def my_function(required_arg, *args, **kwargs): print(required_arg) if args: print(args) if kwargs: print(kwargs) my_function('Hello, world!', 2, 3, 4, my_keyword='some_value') В этом примере required_arg – обязательный аргумент функции my_function. После этого первого аргумента мы указали символ звездочки (*), чтобы пометить все следующие аргументы как необязательные. В примере, это args, который преобразуется в кортеж. Далее, мы указали символ двойной звездочки (**), чтобы пометить все следующие аргументы как необязательные с ключами. Это параметр kwargs, который преобразуется в словарь. В вызове my_function, мы передаем обязательный аргумент 'Hello, world!', аргументы args – 2, 3, 4, и ключевой параметр my_keyword со значением 'some_value' в kwargs. Таким образом, эта функция может принимать переменное количество аргументов, как позиционных, так и именованных. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥2🤯1
1 · 142 ·
P
Python | Готовимся к собесам
Что такое магические методы (dunder-методы)? Ответ: Магические методы, также известные как “dunder” (double underscore) методы в Python, это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием. Они позволяют определить, как объекты этого класса будут вести себя в различных контекстах, например, при использовании операторов Python, таких как +, -, *, / и т.д., при вызове функций и методов, при сериализации и многое другое. Некоторые примеры магических методов в Python включают: init: инициализирует новый экземпляр объекта str: определяет, как объект будет представлен в строковом формате add: определяет, что происходит при использовании оператора + len: определяет, как объект будет представлен при вызове функции len() getitem: позволяет получать доступ к элементам объекта, как к элементам списка Магические методы могут быть очень полезными при создании пользовательских классов в Python, так как они позволяют управлять поведением объектов в различных контекстах и создавать более понятный и гибкий код. # иллюстрация "утиной типизации": мы можем измерять длину у всего, где есть метод len() class MyClass: def __len__(self): print('длина - это смотря как посмотреть') return 0 myclass = MyClass() print(len(myclass)) Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯2
3 · 142 ·
P
Python | Готовимся к собесам
Фотография
нажмите — покажем
Python: большая книга примеров [2023] "Большая книга примеров" предлагает подробное описание языка программирования Python, дополненное материалами из различных интернет-источников. Книга нацелена на то, чтобы помочь читателям понять язык через его описание и примеры использования, и может служить учебным пособием для начинающих. 🔤 Скачать книгу ➡️ Подготовка Python | #книги
❤2
3 · 125 ·
P
Python | Готовимся к собесам
Фотография
нажмите — покажем
В чём преимущества массивов numpy по сравнению с (вложенными) списками python? Ответ: Основное преимущество массивов NumPy перед списками Python заключается в том, что NumPy использует более оптимизированную память и имеет более эффективные методы работы с массивами (из-за реализации на C), что делает его подходящим выбором для работы с большими объемами данных и научных вычислений. Например, с NumPy вы можете выполнять бродкастинг (broadcasting), матричные операции и другие векторизованные вычисления с более высокой производительностью, чем при использовании вложенных списков. Некоторые из основных преимуществ NumPy: Более оптимизированная память, что позволяет NumPy работать быстрее с большим объемом данных Встроенные методы для выполнения арифметических операций, таких как сумма и произведение, которые могут работать сразу над всеми элементами массивов. Возможность выполнять матричные операции и другие векторизованные вычисления. Простой синтаксис для выполнения операций над массивами. Возможность конвертировать массивы NumPy в другие формы данных, такие как списки Python или таблицы Pandas. Eсли вы работаете с массивами данных, над которыми нужно выполнять научные вычисления, то использование NumPy будет более предпочтительным вариантом, чем использование списков Python. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥3
1 · 126 ·
P
Python | Готовимся к собесам
Python — это императивный или декларативный язык? Ответ: Python является императивным языком программирования. В императивном программировании программист составляет последовательность команд, которые выполняются компьютером. Python также поддерживает некоторые функциональные и объектно-ориентированные концепции программирования, однако основной подход в языке является императивный. “Императивный язык” это термин, который относится к классу языков программирования, использующих прямые команды для управления компьютером, в отличие от декларативных языков. В императивных языках программист явно описывает действия, которые нужно выполнить компьютеру, а не просто описывает желаемый результат. Примеры императивных языков программирования это Java, C, C++, Python и JavaScript. Декларативный язык – это язык программирования, который назначает техническую реализацию системы или программы для достижения определенной цели, но не указывает конкретных шагов для ее выполнения. Вместо этого вы определяете, какая информация должна быть обработана, а система сама определяет, как решить эту проблему. Примерами декларативных языков являются SQL для работы с базами данных и HTML для создания веб-страниц. Такие языки обычно используются в случаях, когда важнее задать желаемый результат, чем указать, как добиться этого результата Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥2🤯2
2 · 134 ·
P
Python | Готовимся к собесам
Что такое виртуальное окружение? Ответ: Виртуальное окружение – это механизм, который позволяет создавать изолированные окружения для установки и использования пакетов Python. Это полезно, когда вам нужно установить определенную версию пакета или когда вам нужно иметь одновременный доступ к разным версиям библиотек в зависимости от проекта. Создание виртуального окружения позволяет изолировать зависимости проекта от системных зависимостей и других проектов, работающих на той же машине. Это помогает избежать конфликтов зависимостей, что может привести к ошибкам и сбоям. Вы можете создать виртуальное окружение Python с помощью модуля venv, который поставляется в стандартной библиотеке Python. Например, вы можете создать виртуальное окружение в текущей директории, выполнив следующую команду в терминале: python3 -m venv myenv где myenv – имя виртуального окружения. После создания виртуального окружения вы можете активировать его, выполнив команду (для Unix-системы): source myenv/bin/activate или (для Windows): myenvScriptsactivate После активации виртуального окружения вы можете устанавливать и использовать пакеты Python без влияния на глобальное окружение вашего компьютера. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
❤2
2 · 151 ·
P
Python | Готовимся к собесам
Как получить доступ к модулю, написанному на python из C и наоборот? Ответ: Для того чтобы получить доступ к модулю, написанному на Python из C, можно использовать библиотеку Python/C API, которая позволяет вызывать Python функции и работать с объектами Python из C программы. Для того чтобы получить доступ к модулю, сначала нужно получить указатель на объект модуля с помощью функции PyImport_ImportModule(). Затем можно получить указатель на функции или объекты модуля с помощью функции PyObject_GetAttrString(). Например, вот пример кода на C, который вызывает функцию “hello” из модуля “example” на Python: #include <Python.h> int main() { Py_Initialize(); PyObject* module = PyImport_ImportModule("example"); PyObject* func = PyObject_GetAttrString(module, "hello"); PyObject* result = PyObject_CallObject(func, NULL); printf("Result: %sn", PyUnicode_AsUTF8(result)); Py_DECREF(func); Py_DECREF(module); Py_DECREF(result); Py_Finalize(); return 0; } Аналогичным образом можно вызвать функции из библиотек, написанных на C из Python, используя библиотеку ctypes. Например, вот пример кода на Python, который вызывает функцию sqrt из библиотеки math: from ctypes import cdll libm = cdll.LoadLibrary('libm.so') print(libm.sqrt(4.0)) Здесь мы загружаем библиотеку libm.so (которая содержит функцию sqrt) и вызываем её с помощью атрибута dot-notation Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥1
2 · 165 ·
P
Python | Готовимся к собесам
Фотография
нажмите — покажем
Парсинг с помощью Python. Веб-скрапинг в действии [2025] Если программирование – магия, то веб-скрапинг – настоящее колдовство. Написав простую автоматизированную программу, можно отправлять запросы веб-серверам, получать ответы с данными, а затем анализировать эти данные и извлекать необходимую информацию. Это обновленное третье издание книги не только познакомит вас с веб-скрапингом, но и послужит исчерпывающим руководством по сбору практически любых видов данных в современном Интернете. В части I основное внимание уделено механике веб-скрапинга: как с помощью Python отправлять запросы веб-серверам, обрабатывать ответы и автоматизировать взаимодействие с сайтами. В части II исследуются более конкретные инструменты и приложения, которые пригодятся при любом сценарии веб-скрапинга. 🔤 Скачать книгу ➡️ Подготовка Python | #книги
4 · 169 ·
P
Python | Готовимся к собесам
Фотография
нажмите — покажем
Репозиторий с пошаговыми задачами для старта в Python за 30 дней Внутри — текстовые уроки для челленджа «30 дней программирования на Python». Разбор тем, задачки, полезные ссылки — всё для тех, кто только делает первые шаги ➡️Ссылка на репозиторий ➡️ Подготовка Python | #репозиторий
3 · 179 ·
P
Python | Готовимся к собесам
Что такое wheels и eggs? В чём разница? Ответ: В Python wheels и eggs – это форматы пакетов для установки и дистрибуции пакетов с помощью утилиты управления пакетами pip. Eggs был первоначально разработан как формат дистрибуции пакетов для Python, но был заменен wheels. В отличие от wheels, eggs могут содержать .pyc файлы, что может привести к проблемам при установке на другой платформе или версии Python. Wheels – это новый формат дистрибуции пакетов, который был введен в Python 2.7. Он поддерживается большинством пакетов на PyPI и имеет множество преимуществ, например: Он не содержит .pyc файлов, что снижает вероятность конфликтов. Он легко переносится между платформами и версиями Python. Он поддерживает сжатие библиотек и упрощает установку требований. В целом, wheels считается более продвинутой и предпочтительной формой дистрибуции пакетов в Python. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯4
1 · 154 ·
P
Python | Готовимся к собесам
Почему в python нет оптимизации хвостовой рекурсии? Как это реализовать? Ответ: В Python хвостовая рекурсия не оптимизируется автоматически, поскольку она может привести к переполнению стека вызовов. В связи с этим, используется итеративный подход для написания функций, которые могут быть написаны с использованием хвостовой рекурсии в других языках. Вы можете использовать декоратор sys.setrecursionlimit() для установки максимальной глубины стека вызовов. Однако это не рекомендуется, поскольку установка слишком большого лимита может привести к проблемам с производительностью, а слишком маленький лимит – к ошибкам переполнения стека вызовов. Вот пример того, как можно установить максимальную глубину стека вызовов до 4000: import sys sys.setrecursionlimit(4000) Вы также можете изменить код функции, чтобы использовать итеративный подход вместо хвостовой рекурсии. Один пример такого изменения может выглядеть следующим образом: def factorial(n): result = 1 for i in range(1, n+1): result *= i return result это вместо использования рекурсивного подхода с вызовом factorial(n-1) внутри функции factorial(n). Изменение рекурсивно написанной функции на итеративный код не всегда легко, но может существенно повысить производительность и устранить проблемы с переполнением стека вызовов. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥1
167 ·
P
Python | Готовимся к собесам
Что такое интернирование строк? Почему это есть в python? Ответ: Интернирование строк – это процесс, при котором две или более строковые переменные, содержащие одинаковое значение, ссылаются на один и тот же объект в памяти. В Python интернирование строк происходит автоматически при создании строковых констант в исходном коде программы. Это означает, что если две или более строковые константы содержат одинаковое значение, они будут ссылаются на один и тот же объект в памяти. Интернирование строк применяется для оптимизации использования памяти и ускорения выполнения программы. Поскольку операция сравнения двух строк, ссылающихся на один и тот же объект в памяти, выполняется быстрее, чем сравнение двух строк, которые хранятся в разных объектах в памяти. В Python интернирование строк применяется для строковых констант, которые состоят из символов ASCII и имеют длину не более 20 символов. Это объясняется тем, что длинные строки могут занимать слишком много места в памяти, что может привести к проблемам производительности. Интернирование строк является одним из многих способов оптимизации производительности, доступных в Python. Оно позволяет ускорить выполнение программы за счет сокращения использования памяти и оптимизации операций сравнения строк. Пример кода, который демонстрирует интернирование строк в Python: a = 'hello' b = 'hello' print(a is b) # True, потому что обе переменные ссылаются на один и тот же объект в памяти c = 'hello world' d = 'hello world' print(c is d) # False, потому что строка "hello world" длиннее 5 символов и не является интернированной e = '_123' f = '_123' print(e is f) # True, потому что строка содержит только цифры и символ '_' Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯3🔥1
160 ·
P
Python | Готовимся к собесам
Почему всякий раз, когда python завершает работу, не освобождается вся память? Python использует автоматическое управление памятью с помощью механизма сборки мусора, который освобождает память, занятую объектами, которые больше не используются в программе. Однако, до того как механизм сборки мусора может освободить память объекта, все ссылки на этот объект должны быть удалены. Если в программе остаются ссылки на объекты, которые больше не нужны, то эти объекты не будут удалены до окончания работы приложения. Также может случиться, что размер объектов, которые использует программа, слишком велик для доступной оперативной памяти. В этом случае операционная система может начать использовать файл подкачки, что может замедлить работу программы. Если вы столкнулись с проблемой утечки памяти, то можно воспользоваться инструментами, такими как memory_profiler для Python, которые помогут выявить места, где память не освобождается, и найти способы ее оптимизации. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯4
168 ·
P
Python | Готовимся к собесам
Что такое GIL? Почему GIL всё ещё существует? Ответ: GIL (Global Interpreter Lock) – это механизм в интерпретаторе CPython , который гарантирует, что только один поток исполнения может выполнять байт-код Python в любой момент времени. Это было добавлено в Python для обеспечения безопасности потоков в многопоточной среде и для упрощения реализации интерпретатора. GIL всё ещё существует, потому что он является важной частью интерпретатора CPython и его логики работы с потоками. Однако, недавние версии Python имеют некоторые механизмы для обхода ограничений GIL, такие как использование многопроцессных вычислений вместо многопоточных и использование асинхронного программирования. Кроме того, есть и другие реализации языка Python, такие как Jython и IronPython, которые не используют GIL. Короче, вопрос насколько GIL ограничивает производительность Python сейчас является спорным и холиварным. Подробнее о GIL можно почитать тут: Python — это медленно. Почему? Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯2🔥2
2 · 150 ·
P
Python | Готовимся к собесам
Что будет напечатано в результате выполнения следующего кода? Ответ: import sys arr_1 = [] arr_2 = arr_1 print(sys.getrefcount(arr_1)) В результате выполнения данного кода будет напечатано число, равное количеству ссылок на объект arr_1, которые существуют в настоящий момент времени. Так как мы создаем две переменные, arr_1 и arr_2, которые ссылаются на один и тот же пустой список [], то количество ссылок на него будет равно 2. Поэтому в результате выполнения данного кода будет напечатано число 2. Эта величина может быть немного больше, чем ожидается, из-за внутренней оптимизации CPython, которая добавляет временные ссылки на объекты. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
❤2
143 ·
P
Python | Готовимся к собесам
Что такое MRO? Как это работает? Ответ: MRO (Method Resolution Order) – это порядок разрешения методов, который используется в языке программирования Python при наследовании классов. Когда вызывается метод на экземпляре класса, Python ищет этот метод в самом классе, а затем в его родительских классах в порядке, определенном в MRO. Таким образом, MRO управляет тем, как Python ищет методы, которые были унаследованы из нескольких родительских классов. Порядок MRO может быть определен несколькими способами, но в общем случае MRO определяется с помощью алгоритма C3, который гарантирует, что порядок разрешения методов будет соблюдать локальный порядок наследования каждого класса и не создавать циклов в определении этого порядка. Например, если класс A наследуется от классов B и C, а класс B наследуется от класса D, а класс C наследуется от класса E, то MRO для класса A будет определен как [A, B, D, C, E, object]. Это означает, что если существует метод, определенный в классе A и в одном из его родительских классов, то метод из класса A будет вызван, а не из его родительских классов. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
141 ·
P
Python | Готовимся к собесам
Когда будет выполнена ветка else в конструкции try…except…else? Ответ: Ветка else в конструкции try ... except ... else будет выполнена только в том случае, если исключения не было возбуждено в блоке try. Если в блоке try произошло исключение, то выполнение программы переходит к соответствующему блоку except, и ветка else пропускается. Если блок except не указан, то исключение будет возбуждено дальше, а программа завершится с сообщением об ошибке. a, b = map(int, input().split()) try: print(a / b) except: print('Ошибка') else: print('Ошибки не было') # это выводится для любых чисел a, b, если b != 0 Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥1
132 ·
P
Python | Готовимся к собесам
Фотография
нажмите — покажем
🤩 Python для сложных задач [2024, RU] Python — отличный инструмент, прежде всего из-за множества библиотек для работы с данными. Эта книга объединяет подробные описания таких библиотек, как IPython, NumPy, pandas, Matplotlib и Scikit-Learn. Специалисты по обработке данных найдут здесь решения для обработки, преобразования и визуализации данных, а также для разработки статистических и машинных моделей. Книга является идеальным справочником по научным вычислениям в Python. Скачать ➡️ Подготовка Python | #книги
1 · 136 ·
P
Python | Готовимся к собесам
Каким будет результат следующего выражения? len(' '.join(list(map(str, [0, 1])))) Внутреннее выражение map(str, [[0], [1]]) преобразует целые значения 0 и 1 в строки, в результате чего получается ['0', '1']. Затем функция списка преобразует этот итератор в список. Метод соединения соединяет элементы списка пробелом, в результате чего получается строка "0 1". Наконец, функция len возвращает длину этой строки, которая равна 3. Вот и всё. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯1
149 ·
P
Python | Готовимся к собесам
Как перезагрузить импортированный модуль? Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib. Вот как это сделать: from importlib import reload import module_name reload(module_name) Замените module_name на фактическое имя модуля, который вы хотите перезагрузить. Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯2🔥2
155 ·
P
Python | Готовимся к собесам
Как создать класс без слова class? Kласс можно создать без использования ключевого слова class, используя типы type или metaclass. Например, следующий код определяет класс MyClass без использования ключевого слова class: MyClass = type('MyClass', (), {'x': 42, 'foo': lambda self: self.x}) Этот код эквивалентен определению класса с использованием ключевого слова class: class MyClass: x = 42 def foo(self): return self.x Оба определения класса эквивалентны и создают объект класса MyClass. Но, честно, использование ключевого слова class читабельнее, хотя где-нибудь может пригодиться и type с metaclass. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🤯3
1 · 179 ·
P
Python | Готовимся к собесам
Каким будет результат следующего выражения? Ответ: Супер простой вопрос, но, согласитесь, ошибиться возможно. [0, 1][10:] Выражение [0, 1][10:] возвращает пустой список [], так как срез [10:] означает извлечение элементов начиная с индекса 10 и до конца списка [0, 1], но таких элементов нет. Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥2🤯1
232 ·
P
Python | Готовимся к собесам
Как итерировать словарь по парам ключ-значение Ответ: Метод словаря .items() возвращает генератор кортежей (key, value). Если знали ответ — поставьте 🔥 Если нет — 🤯 ➡️ Подготовка Python | #вопросы
🔥2
183 ·

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем