fa
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، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -44 و در ۲۴ ساعت گذشته برابر 0 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 6.01% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 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