Библиотека собеса по Python | вопросы с собеседований
6.03K subscribers
692 photos
15 videos
627 links
Вопросы с собеседований по Python и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/6587aafa

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
✍🏻 Чем файл .pyc отличается от файла .py?

Хотя оба файла содержат байт-код, .pyc — это скомпилированная версия файла Python
. Он имеет независимый от платформы байт-код.

Следовательно, мы можем выполнить его на любой платформе, поддерживающей формат .pyc.

Python автоматически генерирует его для повышения производительности (с точки зрения времени загрузки, а не скорости).


Библиотека собеса по Python
В чем разница между локальными и глобальными переменными в SQL?

Локальные переменные могут быть доступны только внутри функции, в которой они были объявлены. А глобальные переменные, будучи объявленными вне какой-либо функции, хранятся в фиксированных структурах памяти и могут использоваться во всей программе.

Библиотека собеса по Python
👍3
🆚 Зачем нужен паттерн Фасад и чем он отличается от Адаптера?

Используется для создания простого и понятного интерфейса поверх сложной или запутанной подсистемы.

🚩 Зачем нужен:

Когда взаимодействовать с подсистемой напрямую неудобно — слишком много деталей, низкоуровневый API или несогласованные интерфейсы.

🚩 Пример из Python:
Работа с архивами — модули gzip, tarfile, zipfile имеют разный интерфейс. Чтобы скрыть различия, можно сделать единый фасад-класс, который всё упростит.

🚩 Фасад ≠ Адаптер
— Фасад упрощает работу с подсистемой
— Адаптер делает несовместимые интерфейсы совместимыми

Их можно комбинировать: адаптировать каждый модуль, а сверху построить единый фасад.

Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
✍🏻 Как изменить тип данных списка?

Для изменения типа данных в списке можно использовать встроенные функции:

1. map() — применяет указанную функцию к каждому элементу списка и возвращает новый список с измененными элементами:

old_list = [1, 2, 3]
new_list = map(str, old_list)

В новом списке все элементы будут строкового типа.

2. Использование генераторного выражения:

old_list = [1, 2, 3]
new_list = [str(x) for x in old_list]

Здесь мы преобразуем элементы в строку и помещаем в новый список.

Также можно применить конструкцию map к генераторному выражению:

new_list = list(map(str, [1, 2, 3]))


Библиотека собеса по Python
👍2🤔1
👾 Что делает whylogs?

whylogs — это библиотека для профилирования и анализа данных в Python. Она предоставляет средства для сбора статистики о данных, визуализации этой статистики и создания профилей данных для мониторинга и анализа.

Библиотека собеса по Python
2
Друзья, с наступающим Новым годом! 🎄
Пусть в 2026 собеседования проходят спокойнее и предсказуемее: вопросы — по делу, задачи — решаемые, а фидбек — быстрый и честный. Пусть будет больше приятных разговоров, больше «да» по итогам встреч и больше поводов гордиться собой.

Тепла, здоровья и карьерных побед — с праздником! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩65👍2
Как обрабатывать несколько ошибок из параллельных задач, не теряя стеков и не «глуша» отмену?

Запускайте задачи в TaskGroup, ловите ExceptionGroup и разбирайте через except* по типам; отмену не подавляйте — дайте CancelledError всплыть. Логи ведите по вложенным исключениям, повторные ретраи — точечно по соответствующим подгруппам.

Библиотека собеса по Python
Как сравниваются последовательности?

При сравнении происходит поэлементное (по порядку) сравнение элементов последовательностей.

Сначала сравниваются первые элементы, если они равны — вторые и т.д.

Если при сравнении очередных элементов, элемент одной последовательности оказался больше элемента другой — то результат сравнения определен.

Если дошли до конца одной последовательности, то большей считается более длинная.

Таким образом, сравнение идет поэлементно слева направо до тех пор, пока элементы равны или пока не закончится одна из последовательностей. Это называется лексикографическим порядком сравнения.


Библиотека собеса по Python
👍5
Какие коды ответа HTTP существуют?

1xx — информационный
2xx — успех
3xx — перенаправление
4xx — ошибка, сбой клиента
5xx — ошибка, сбой сервера


Библиотека собеса по Python
В продакшн-сервисе на Python вы замечаете постепенный рост потребления памяти (memory leak). Как будете искать и устранять проблему?

Соберу метрики памяти и сниму heap dump с помощью tracemalloc, objgraph или memory_profiler. Проверю, нет ли висящих ссылок (глобальные коллекции, кэш, циклические ссылки). Если виноваты сторонние библиотеки — обновлю или изолирую. Для оптимизации — внедрю лимиты, пулы объектов, кеш с TTL и мониторинг утечек в CI/CD.

Библиотека собеса по Python
👍1
В чём разница между deepcopy и copy в Python, и как они работают с объектами, содержащими изменяемые и неизменяемые типы данных?

copy.copy создаёт поверхностную копию объекта: сам объект новый, но вложенные изменяемые элементы (списки, словари, пользовательские объекты) остаются ссылками на те же объекты. copy.deepcopy рекурсивно копирует все вложенные структуры, создавая полную независимую копию, обходя граф объектов и учитывая циклические ссылки с помощью внутреннего memo. Для неизменяемых типов (строки, числа, кортежи без изменяемых элементов) оба метода возвращают ту же ссылку.

Библиотека собеса по Python
👍4
Что не так с приведённым кодом?

В Python переменные не объявляются заранее, поэтому интерпретатор самостоятельно определяет их область видимости. Если внутри функции используется переменная, она считается локальной. В данном случае переменная count является глобальной, что приводит к возникновению ошибки в коде.


Библиотека собеса по Python
👍51
Напишите программу для вставки пробела между символами всех элементов массива NumPy

Решение:
import numpy as np

# Create Sample NumPy Array
arr = np.array(['i', 'love', 'NumPy', 'AND', 'interviewbit'], dtype=str)

transformed_arr = np.char.join(" ", arr)

print("Transformed Array: ")
print(transformed_arr)


Библиотека собеса по Python
Как использовать сеансы на основе файлов?

Чтобы использовать то же самое, вам нужно установить настройки SESSION_ENGINE на "django.contrib.sessions.backends.file".

Библиотека собеса по Python