Python вопросы с собеседований
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd
نمایش بیشتر📈 تحلیل کانال تلگرام Python вопросы с собеседований
کانال Python вопросы с собеседований (@python_job_interview) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 24 955 مشترک است و جایگاه 5 488 را در دسته فناوری و برنامهها و رتبه 26 827 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 24 955 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 08 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -147 و در ۲۴ ساعت گذشته برابر -7 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 5.90% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 3.07% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 472 بازدید دریافت میکند. در اولین روز معمولاً 765 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 8 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند github, api, собеседование, git, docker تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Вопросы с собеседований по Python
@workakkk - админ
@machinelearning_interview - вопросы с собесдований по Ml
@pro_python_code - Python
@data_analysis_ml - анализ данных на Python
@itchannels_telegram - 🔥 главное в ит
РКН: clck.ru/3FmrFd”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 09 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
На курсе рассматриваются все особенности актуальных версий Python 3.6+.👉 ПРОЙТИ ТЕСТ: https://otus.pw/qmDG/
Нативная интеграция. Информация о продукте www.otus.ruintervals = [[0,30],[5,10],[15,20]]
Вывод: 2
Ввод: intervals = [[7,10],[2,4]]
Вывод: 1
📌Решение
Пишите свое решение в комментариях👇
@python_job_interviewget__() - получить значение свойства;
set__() - задать значение;
delete__() - удалить атрибут;
set_name__() - присвоить имя свойству (появился в Питоне версии 3.6).
Если применяется только метод __get__(), то мы имеем дело с дескриптором без данных, а если есть еще и __set__(), то речь будет идти о дескрипторе данных.
Покажем использование дескрипторов на вышеупомянутом примере.
Пример – IDE
---
# Создаем класс с протоколами дескриптора
class StringChecker:
# Получаем доступ к свойству
def __get__(self, instance, owner):
if instance is None:
return self
return instance.__dict__[self.name]
# Меняем свойство
def __set__(self, instance, str_value):
if not isinstance(str_value, str):
raise ValueError('Нужно предоставить строку')
elif len(str_value) < 2:
raise ValueError('Необходимо минимум 2 буквы')
instance.__dict__[self.name] = str_value
# Задаем имя свойства
def __set_name__(self, owner, name):
self.name = name
class Employee:
# Определяем атрибуты (их может быть любое количество)
name = StringChecker()
surname = StringChecker()
patronymic = StringChecker()
post = StringChecker()
# Инициализируем свойства с учетом требуемых проверок
def __init__(self, name, surname, patronymic, post):
self.name = name
self.surname = surname
self.patronymic = patronymic
self.post = post
# Тесты
director = Employee('Иван', 'Николаевич', 'Прогин', 'Директор')
print(director.__dict__)
director.name = 1
director.name = 'A'
Результат выполнения
---
{'name': 'Иван', 'surname': 'Николаевич', 'patronymic': 'Прогин', 'post': 'Директор'}
ValueError: Нужно предоставить строку
ValueError: Минимум две буквы в атрибуте требуется
@python_job_interviewdef test_system_echo(capfd):
os.system('echo "hello"')
captured = capfd.readouterr()
assert captured.out == "hello\n"
Capfdbinary — тоже работает со стандартным выводом и ошибками, но возвращает именованный кортеж, где сообщения из stderr и stdout представлены в виде байтовых строк.
def test_system_echo(capfdbinary):
os.system('echo "hello"')
captured = capfdbinary.readouterr()
assert captured.out == b"hello\n"
Capsys — фикстура для работы с потоками для стандартного вывода и вывода ошибок на уровне python-кода. Захватывает sys.stdout и sys.stderr из кода и возвращает в виде строк.
def test_output(capsys):
print("hello")
captured = capsys.readouterr()
assert captured.out == "hello\n"
Capsysbinary — подходит для работы с потоками стандартного вывода на уровне python-кода. Захватывает sys.stdout и sys.stderr из кода и возвращает в виде байтовых строк.
def test_output(capsysbinary):
print("hello")
captured = capsysbinary.readouterr()
assert captured.out == b"hello\n"
Логирование
Логи — отличный инструмент для дебага, когда дело касается стабильной работы приложения. По ним можно понять, когда и из-за чего в работе системы возник сбой. Pytest имеет несколько фикстур для управления логами из тестов.
Caplog — позволяет работать с логами в python-коде. Дает возможность изменять уровень логирования, перехватывать сообщения, модифицировать их и многое другое.
# Задать уровень логирования
def test_foo(caplog):
caplog.set_level(logging.INFO)
for message in caplog.messages:
assert "for debug level" not in message
# Пример проверки уровня логирования и текста в сообщении лога
def test_baz(caplog):
func_under_test()
for record in caplog.records:
assert record.levelname != "CRITICAL"
assert "wally" not in caplog.text
Recwarn — возвращает экземпляр класса WarningsRecorder, где будут храниться все warnings, которые были вызваны с помощью warnings.warn в тестовых функциях.
import warnings
def test_check_warnings(recwarn):
warnings.warn("hello", UserWarning)
assert len(recwarn) == 1
warn = recwarn.pop(UserWarning)
assert issubclass(warn.category, UserWarning)
assert str(warn.message) == "hello"
assert warn.filename
Отчеты и документация
Pytest из коробки позволяет генерировать отчеты в формате JUnit XML, поэтому во фреймворке имеется ряд специальных фикстур для управления формированием отчета.
Doctest_namespace — фикстура для работы со встроенной библиотекой doctest. Библиотека помогает сравнить поведение функции с тем, что описано в docstring как ее ожидаемое поведение.
# Объявляем фикстуру в conftest.py
import numpy
@pytest.fixture(autouse=True)
def add_np(doctest_namespace):
doctest_namespace["np"] = numpy # Добавляет в namespace np ссылку на объект numpy
# Вызываем namespace в numpy.py
def arange():
"""
>>> a = np.arange(10)
>>> len(a)
10
"""
pass
Напишите фикстуры, которые вы используете в комментариях 👇
@python_job_interview* С инпутом 'a'
* Ваша функция должна вернуть ['a']
* С инпутом 'ab'
* Ваша функция должна вернуть ['ab', 'ba']
* С инпутом 'aabb'
* Ваша функция должна вернуть ['aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa']
Обратите внимание, что порядок перестановок не имеет значения.
Пишите свое решение в комментариях👇
@python_job_interviewurl = "https://uproger.com/c/HowdyhoNet" -> domain name = "uproger.com"
url = "http://www.zombie-bites.com" -> domain name = "zombie-bites"
url = "https://www.cnet.com" -> domain name = cnet"
Пишите свое решение в комментариях👇
@python_job_interviewurl = "https://uproger.com/c/HowdyhoNet" -> domain name = "uproger.com"
url = "http://www.zombie-bites.com" -> domain name = "zombie-bites"
url = "https://www.cnet.com" -> domain name = cnet"
Пишите свое решение в комментариях👇
@python_job_interviewprofit({
"cost_price": 32.67,
"sell_price": 45.00,
"inventory": 1200
}) ➞ 14796
profit({
"cost_price": 225.89,
"sell_price": 550.00,
"inventory": 100
}) ➞ 32411
profit({
"cost_price": 2.77,
"sell_price": 7.95,
"inventory": 8500
}) ➞ 44030
Примечание:
1. Предполагаем, что все запасы были проданы.
2. Прибыль = общая сумма продаж – общая себестоимость
Пишите ваши варианты решения в комментах. Варианты решений будут скоро(сегодня-завтра)
#новичок #coбес
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
