ar
Feedback
Python вопросы с собеседований

Python вопросы с собеседований

الذهاب إلى القناة على Telegram

Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Python вопросы с собеседований

تُعد قناة Python вопросы с собеседований (@python_job_interview) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 24 822 مشتركاً، محتلاً المرتبة 5 258 في فئة التكنولوجيات والتطبيقات والمرتبة 26 472 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 24 822 مشتركاً.

بحسب آخر البيانات بتاريخ 25 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -44، وفي آخر 24 ساعة بمقدار 0، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 6.01‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 2.76‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 1 492 مشاهدة. وخلال اليوم الأول يجمع عادةً 684 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 6.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل github, api, собеседование, git, docker.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Вопросы с собеседований по Python @workakkk - админ @machinelearning_interview - вопросы с собесдований по Ml @pro_python_code - Python @data_analysis_ml - анализ данных на Python @itchannels_telegram - 🔥 главное в ит РКН: clck.ru/3FmrFd

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 31 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

24 822
المشتركون
لا توجد بيانات24 ساعات
+637 أيام
-4430 أيام
أرشيف المشاركات
🖥 Декоратор для замера времени Напишите декоратор TimeDecorator, который будет замерять время выполнения декорированной функции. Исходная функция должна возвращать результат, а декоратор должен просто выводить строку "Затрачено N секунд" на экран. Пример: def func(...): ... print('Я закончила работать!') func() # Затрачено 0.5 секунд # Я закончила работать! Пишите свое решение в комментариях👇 @python_job_interview

🔥 Хардкорный тест по Python от OTUS 🔥 🐍 Ответьте на 20 вопросов и проверьте, насколько вы готовы к обучению на курсе - «Py
🔥 Хардкорный тест по Python от OTUS 🔥 🐍 Ответьте на 20 вопросов и проверьте, насколько вы готовы к обучению на курсе - «Python Developer. Professional» 👉 ПРОЙТИ ТЕСТ https://otus.pw/sXXn/ 💣 Пройдете тест и получите: ✔️ Живое общение с экспертами Python-сообщества ✔️ Лучшие открытые уроки прошлых наборов курса ✔️ Продвинутые темы и практика на «боевых» задачах уровня Middle+ ✔️ Скидку на прохождение онлайн курса «Python Developer. Professional» Курс доступен в рассрочку. Реклама. Информация о рекламодателе на сайте www.otus.ru

🖥 Эта задача взята с Avito Weekend Offer для аналитиков Вам дан набор чисел в виде списка Python. Необходимо найти медиану этого числового ряда. Задание Напишите функцию FindMedian, которая будет возвращать одно число - медианное значение. Функция FindMedian принимает на вход arr - исходный список с числами. Пример: arr = [1, 5, 2, 3, 6] Ответ: 3 Пример: arr = [100, 5, 2, 4, 3, 6] Ответ: 4.5 Примечание: Если в выборке четное число элементов, то за медиану нужно взять среднее между центральными элементами (после упорядочивания). Дополнительная информация Обратите внимание, что шаблон решения представлен в виде (на примере языка Python): class Answer: def function(self, arg1, arg2): # напишите свой код ниже return res Здесь function - функция, которую вам нужно написать (от задачи к задаче ее имя меняется), а arg1, arg2 - аргументы этой функции. Чтобы решить задачу, напишите свой код между комментарием и выражением return .... print(Answer().function(arg1, arg2)) Если вам нужно импортировать какой-то модуль, указывайте модуль до class Answer. Например: import mymodule class Answer: ... Полный пример: # импортируем модуль import collections class Answer: def problemSolve(self, n, m): # напишите свой код ниже ... return res # промежуточно смотрим результат print(Answer().problemSolve(n=2, m=3)) Пишите свое решение в комментариях👇 @machinelearning_interview

⚡️ Задачи на Python Дана переменная, в которой хранится информация о затратах и доходе рекламных кампаний по различным источникам. Необходимо дополнить исходную структуру показателем ROI по формуле: (revenue / cost - 1) * 100 Пример работы программы: results = { 'vk': {'revenue': 103, 'cost': 98}, 'yandex': {'revenue': 179, 'cost': 153}, 'ok': {'revenue': 103, 'cost': 110}, 'adwords': {'revenue': 35, 'cost': 34}, 'twitter': {'revenue': 11, 'cost': 24}, } Результат: {'adwords': {'revenue': 35, 'cost': 34, 'ROI': 2.94}, 'ok': {'revenue': 103, 'cost': 110, 'ROI': -6.36}, 'twitter': {'revenue': 11, 'cost': 24, 'ROI': -54.17}, 'vk': {'revenue': 103, 'cost': 98, 'ROI': 5.1}, 'yandex': {'revenue': 179, 'cost': 153, 'ROI': 16.99}} Пишите свое решение в комментариях👇 @python_job_interview

⚡️ Задачи на Python с использованием dfs + bfs Дана двоичная матрица размера n x n, где 1 представляет сушу, а 0 представляет воду. Остров — это 4-направленно связанная группа 1, не связанная ни с какими другими 1. В сетке ровно два острова. Вы можете изменить 0 на 1, чтобы соединить два острова в один остров. Возвращает наименьшее количество нулей, которое нужно перевернуть, чтобы соединить два острова. 1. Для начала я предлагаю найти 1-ый остров в матрице, с помощью обхода в глубину (dfs), если мы нашли элемент 1-го острова, тогда меняем значение в двумерной матрице на 2. Для экономии времени мы будем заранее заполнять очередь для будущего обхода в ширину (bfs). n = len(grid) queue = [] def dfs(x, y): if x > 0 or x >= n or 0 > y or y >= n or grid[x][y] != 1: return grid[x][y] = 2 queue.append([x, y, 0]) dfs(x - 1, y) dfs(x + 1, y) dfs(x, y - 1) dfs(x, y + 1) # Перебираем двумерный массив, пока не найдем первый элемент суши flag = False for i in range(n): for j in range(n): if grid[i][j]: dfs(i, j) flag = True break if flag: break 2. С помощью обхода в ширину мы найдем кратчайший путь до 2-го острова, для этого мы заполнили очередь координатами элементов 1-го острова. # Чтобы убрать больше количество условных операторов # я буду использовать цикл for, в котором я буду перебирать # все возможные варианты дальнейшего пути dirct = [(0, 1), (0, -1), (1, 0), (-1, 0)] while len(queue) != 0: # step - расстояние до 2-го острова x, y, step = queue[0][0], queue[0][1], queue[0][2] queue.pop(0) for dx, dy in dirct: x1, y1 = x + dx, y + dy if 0 > x1 or x1 >= n or 0 > y1 or y1 >= n: continue if grid[x1][y1] == 1: return step # ответ на задачу if grid[x1][y1] == 0: grid[x1][y1] = 2 queue.append([x1, y1, step + 1]) Весь код: class Solution(object): def shortestBridge(self, grid): n = len(grid) queue = [] def dfs(x, y): if 0 > x or x >= n or 0 > y or y >= n or grid[x][y] != 1: return grid[x][y] = 2 queue.append([x, y, 0]) dfs(x - 1, y) dfs(x, y - 1) dfs(x + 1, y) dfs(x, y + 1) flag = False for i in range(n): for j in range(n): if grid[i][j]: dfs(i, j) flag = True break if flag: break dirct = [(0, 1), (1, 0), (-1, 0), (0, -1)] while len(queue) != 0: x, y, step = queue[0][0], queue[0][1], queue[0][2] queue.pop(0) for dx, dy in dirct: x1, y1 = x + dx, y + dy if 0 > x1 or x1 >= n or 0 > y1 or y1 >= n: continue if grid[x1][y1] == 1: return step if grid[x1][y1] == 0: grid[x1][y1] = 2 queue.append([x1, y1, step + 1]) @python_job_interview

💡Хотите научиться извлекать из данных пользу и решать задачи бизнеса? Обратите внимание на очную программу «Аналитик данных»
💡Хотите научиться извлекать из данных пользу и решать задачи бизнеса? Обратите внимание на очную программу «Аналитик данных» от Центра непрерывного образования ФКН. ✅ Программа подходит для начинающих: сначала вы изучите основы Python, SQL и прикладную статистику. А дальше перейдете к машинному обучению, A/B-тестам, продуктовым и бизнес-подходам, инструментам Business Intelligence, Data Warehouse.. ✅ Наши преподаватели работают в крупных IT-компаниях, банках и инновационных стартапах. На каждом занятии они учат применять теорию к реальным задачам, которые они решают в индустрии. ✅ Обучение завершается финальным проектом, направленным на решение бизнес-задачи, который станет отличным дополнением к вашему портфолио. Старт уже 22 марта!🔥 Продолжительность: 1 год Где: Москва, Покровский бульвар, 11. Стоимость: 390.000₽, оплату можно разделить на 5 частей без переплат. Подробнее и записаться на курс: по ссылке.

📌 Дана последовательность, в которой находятся рандомные числа в произвольном порядке, в ней находятся только парные элементы. Пример: 2 1 5 5 2 1 К ним добавляют элемент в произольное место Например: 2 3 1 5 5 2 1 Найти этот уникальный элемент используя только один цикл ========================================= (сложность программ - линейная) import random import numpy as np def merge(lst1, lst2): yield from lst1 yield from lst2 def shuffle_list(n: int): lst = np.arange(1, n) np.random.shuffle(lst) return lst def random_insert(lst, item): lst.insert(random.randrange(len(lst)+1), int(item)) def find_item(lst: list): init_lst = [] for item in lst: if lst.count(item) == 1: init_lst.append(item) return init_lst n = int(input("n > ")) a_list = shuffle_list(n) b_list = shuffle_list(n) c_list = list(merge(a_list, b_list)) e = input("e > ") random_insert(c_list, e) print(find_item(c_list)) Это громоздкое решение. Пишите свое решение в комментариях👇 @python_job_interview

Каким будет результат выполнения кода?
Anonymous voting

Навыки разработки микросервисной архитектуры — одна из главных компетенций специалистов по созданию масштабируемых и отказоус
Навыки разработки микросервисной архитектуры — одна из главных компетенций специалистов по созданию масштабируемых и отказоустойчивых приложений. В OTUS в рамках онлайн-курса «Microservice Architecture» пройдут открытые уроки: 🗓 9 февраля в 17:00 мск — «Event Driven Architecture» Познакомимся с основами событийно-ориентированной архитектуры (Event Driven Architecture), рассмотрим взаимодействия на основе событий, подходы к проектированию событий и разберем понятие Event Sourcing. 👉 Пройти тест и записаться на урок — https://otus.pw/BEZU/ 🗓 22 февраля в 17:00 — «Микросервисная архитектура, когда нужна, а когда нет» Рассмотрим плюсы и минусы монолитов и микросервисов, разберем проблемы при двух подходах, а также основные паттерны в микросервисной архитектуре. 👉 Пройти тест и записаться на урок — https://otus.pw/Hbf8/ Открытые уроки будут полезны для back-end разработчиков, Team Lead и администраторов. Это возможность протестировать курс и познакомиться с экспертами.

📌 Тестовое задание по python Мы уже создавали матрицу спирали, теперь создадим полноценный проект. Необходимо реализовать Python-библиотеку, которая осуществляет получение квадратной матрицы (NxN) с удалённого сервера и возвращает её пользователю в виде List[int]. Этот список должен содержать результат обхода полученной матрицы по спирали: против часовой стрелки, начиная с левого верхнего угла (см. test case ниже). Пример исходной матрицы: +-----+-----+-----+-----+ | 10 | 20 | 30 | 40 | +-----+-----+-----+-----+ | 50 | 60 | 70 | 80 | +-----+-----+-----+-----+ | 90 | 100 | 110 | 120 | +-----+-----+-----+-----+ | 130 | 140 | 150 | 160 | +-----+-----+-----+-----+ Матрица гарантированно содержит целые неотрицательные числа. Форматирование границ иными символами не предполагается. Требования к выполнению и оформлению Библиотека содержит функцию со следующим интерфейсом: async def get_matrix(url: str) -> List[int]: ... Функция единственным аргументом получает URL для загрузки матрицы с сервера по протоколу HTTP(S). Функция возвращает список, содержащий результат обхода полученной матрицы по спирали: против часовой стрелки, начиная с левого верхнего угла. Взаимодействие с сервером должно быть реализовано асинхронно - посредством aiohttp, httpx или другого компонента на asyncio. Библиотека должна корректно обрабатывать ошибки сервера и сетевые ошибки (5xx, Connection Timeout, Connection Refused, ...). В дальнейшем размерность матрицы может быть изменена с сохранением форматирования. Библиотека должна сохранить свою работоспособность на квадратных матрицах другой размерности. Решение задачи необходимо разместить на одном из публичных git-хостингов (GitHub, GitLab, Bitbucket). Можно также выслать решение в виде архива (zip, tar). Загружать библиотеку в PyPi или другие репозитории не требуется. Проверка решения Для самостоятельной проверки можно использовать следующий test case: SOURCE_URL = 'https://raw.githubusercontent.com/avito-tech/python-trainee-assignment/main/matrix.txt' TRAVERSAL = [ 10, 50, 90, 130, 140, 150, 160, 120, 80, 40, 30, 20, 60, 100, 110, 70, ] def test_get_matrix(): assert asyncio.run(get_matrix(SOURCE_URL)) == TRAVERSAL Загружайте свои решения и отправляйте ссылки в комментарии👇 @python_job_interview

Только до конца дня дарим 3 курса по 🎯 IT за 0 руб вместо 23.500 руб! 💯 Не упустите возможность получить профессию мечты! З
Только до конца дня дарим 3 курса по 🎯 IT за 0 руб вместо 23.500 руб! 💯 Не упустите возможность получить профессию мечты! Забирай свой набор IT курсов по ссылке 🤝

📌 Задача У вас есть девять цифр: 1, 2, …, 9. Именно в таком порядке. Вы можете вставлять между ними знаки «+», «-» или ничего. У вас будут получаться выражения вида 123+45-6+7+89. Найдите все из них, которые равны 100. def all_combinations(a): if len(a) <= 1: yield a else: head = '' tail = list(a) while len(tail) > 0: head += tail.pop(0) for s in all_combinations(tail): yield [head] + s def all_signs(n): if n == 0: yield () else: for tail in all_signs(n-1): for s in '+-': yield (s,) + tail def perform_operations(nums, signs): nums = list(map(int, nums)) result = nums.pop(0) n = 1 for s in signs: if s == '+': result += nums.pop(0) if s == '-': result -= nums.pop(0) n += 1 return result for numbers in all_combinations(tuple(map(str, range(1, 10)))): #print(numbers) for signs in all_signs(len(numbers) - 1): #print(signs) summ = perform_operations(numbers, signs) if summ == 100: print( ''.join(map( lambda x: ''.join(x), zip(numbers, signs))) + numbers[-1]) Три функции: - all_combinations — итератор, который выдает все числа для операций (в терминах задачи: вставляет пустые места); - all_signs — выдаёт все возможные сочетания знаков + и - заданной длинны (для единообразия, это тоже итератор с рекурсией); - perform_operations — выполняет операции. Здесь просится решение, избавленное от if-ов и кодирования операций с помощью символов. 👉 Это не оптимальное решение. Пишите свое решение в комментариях👇 @python_job_interview