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 أيام
أرشيف المشاركات
Исследование Forbes выявило: у «джунов» сейчас меньше всего перспектив в индустрии. В ответ на проблемы современного образова
Исследование Forbes выявило: у «джунов» сейчас меньше всего перспектив в индустрии. В ответ на проблемы современного образования команда «Девмана» создала свою авторскую методику обучения — никакой теории в отрыве от задач! Вы будете выдвигать гипотезы, почему что-то не работает, тестировать их и находить решения. Такой процесс позволяет готовить не просто джунов-недоучек, а готовых к работе мидлов. На пути становления мидлом вы освоите такие мини-курсы: «API веб-сервисов», «Вёрстка для питониста», «Знакомство с Django: ORM», «Git и GitHub» и «Командная строка», «Продвинутая вёрстка в Django», «Django», «Чат-боты на Python» и «Асинхронный Python». Плюс бонусы — технический английский, подготовка к тех.интервью и ещё много полезного.😉 Первую неделю курса вы можете попробовать бесплатно уже 6 февраля, где вы: ▫️ Начнете писать код с первого занятия; ▫️ Напишите до 2 собственных небольших проектов на Python; ▫️ Получите фидбек от опытного программиста и узнаете, какие скиллы необходимо подтянуть. Для записи на пробную неделю переходите в бота → bit.ly/3DtlChQ Реклама. ООО Девман 2Vtzqx6iZ9V

📌 Задача У продавца и покупателя имеется неограниченное кол-во монет достоинством (1,2,5,10,20,50,100,200,500). Покупатель купил товар на сумму n. Hужно найти минимальное кол-во монет, которые будут использованы при расплате. Деньги может давать как покупатель, так и продавец. Решение a = input('Введите сумму: ') d = dict.fromkeys([500, 200, 100, 50, 20, 10, 5, 2, 1], 0) def get_nearest_value(iterable, value): return min(iterable, key=lambda x: abs(x - value)) for i in d.keys(): d[i] = _i = int(a)/i a = int(a)%i _key = get_nearest_value(d.keys(), a) d[_key] += 1 for k in d.keys(): print('%s - %d' % (k, d[k])) Какая временная сложность данного алгоритма? 👉 Пишите ваше решение в комментариях👇 @python_job_interview

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

📌 Задача с собеседования | Уровень: #Easy Условие: Создать функцию которая принимает строку и заменяет каждую букву на её позицию в алфавите. Если что-то в тексте не является буквой, игнорируйте это и не возвращайте. На выходе получаем строку. Пример: Ф-ция принимает: "I learn Python with Python Job" Ф-ция возвращает: "9 12 5 1 18 14 16 25 20 8 15 14 23 9 20 8 16 25 20 8 15 14 10 15 2" Решение import string def str_to_int(s: str = ''): if not s: return 'входная строка пустая' alphabet = list(string.ascii_lowercase) position_in_alphabet = [str(i + 1) for i in range(len(alphabet))] dict_alphabet = dict(zip(alphabet, position_in_alphabet)) s_to_i = '' for char in s.lower(): if char in dict_alphabet: s_to_i += dict_alphabet.get(char) + ' ' return s_to_i print(str_to_int('I learn Python with Python Job')) 👉 Пишите ваше решение в комментариях👇 @python_job_interview

🔥 Увлекательный тест по highload архитектуре (не для новичков) 🔥 Ответьте на 30 вопросов, чтобы понять готовы ли вы стать архитектором, которые работают с высокими нагрузками и попасть на курс — «Highload Architect» от OTUS. На полном курсе вы научитесь: - Правильно использовать шаблоны: кеширование, реплицирование, шардирование, а также инструменты, такие как индексы, ClickHouse, Tarantool, RabbitMQ и Kafka, redis; - Обеспечивать отказоустойчивость веб-приложений даже при падении серверов; - Уметь создавать веб-приложения, которые легко масштабировать. Время прохождения теста ограниченно 30 минут 👉🏻 Пройти тест https://otus.pw/OHfp/ 💣 После прохождения у вас будет возможность записаться на курс по специальной цене и оформить рассрочку. А также вы получите доступ к записям 20 открытых уроков курса.

🔥 Тест по микросервисной архитектуре (не для новичков) 🔥 Ответьте на 11 вопросов, чтобы проверить достаточно ли ваших навык
🔥 Тест по микросервисной архитектуре (не для новичков) 🔥 Ответьте на 11 вопросов, чтобы проверить достаточно ли ваших навыков, чтобы строить архитектуру микросервисов и попасть на курс — «Microservice Architecture» от OTUS. На полном курсе вы научитесь проектировать сложный бэкенд и работать с легаси-проектами, разбираться с трудными ситуациями и находить нестандартные решения. Все это на практике, с реальными кейсами и под руководством команды экспертов! Время прохождения теста ограниченно 30 минут 👉🏻 Пройти тест https://otus.pw/qnaV/ 💣 После прохождения у вас будет возможность записаться на курс по новогодней цене и оформить рассрочку. А также вы получите доступ к записям 27 открытых уроков курса.

⚡️ Что такое интроспекция? Introspection in Python Интроспекция — это способность программы исследовать тип или свойства объекта во время работы программы. Вы можете поинтересоваться, каков тип объекта, является ли он экземпляром класса. Некоторые языки даже позволяют узнать иерархию наследования объекта. Возможность интроспекции есть в таких языках, как Ruby, Java, PHP, Python, C++ и других. В целом, инстроспекция — это очень простое и очень мощное явление. Вот несколько примеров использования инстроспекции: // Java if(obj instanceof Person){ Person p = (Person)obj; p.walk(); } //PHP if ($obj instanceof Person) { // делаем что угодно } В Python самой распространённой формой интроспекции является использование метода dir для вывода списка атрибутов объекта: # Python class foo(object): def __init__(self, val): self.x = val def bar(self): return self.x ... dir(foo(5)) => ['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', 'bar', 'x'] @python_job_interview

⚡️ Что такое coroutine (Сопрограмма) в Python? Не совсем понятно, что именно непонятно, поэтому я попробую упростить ответ максимально, прибегнув при этом к грубым допущениям. Да простят меня коллеги. Сопрограмма (coroutine) — результат вызова асинхронной функции, представляющий собой выполнение этой функции, способное приостанавливаться. Так как в общем случае невозможно определить сколько раз и на какое время выполнение будет приостановлено, невозможно и сказать когда оно будет закончено. Ваш код может либо ждать завершения выполнения сопрограммы с помощью оператора await, либо поручить ожидание циклу событий и продолжить свой выполнение. В первом случае async def callee(): print('Hello') async def caller(): await callee() print('World') выполнение caller приостановится до выполнения callee. В этот момент какие-то другие операции в каких-то других сопрограммах могут продолжаться, но caller будет ждать там, где выполнил await. Во втором случае async def callee(): print('Hello') async def caller(): asyncio.create_task(callee()) print('World') caller сразу же продолжит свою работу. Строка "World" будет выведена раньше, чем "Hello". Здесь мы видим, что caller поставил циклу событий задачу выполнить сопрограмму callee. Но что если, callee будет возвращать какое-то значение, которое нужно вызывающей стороне, но не прямо сейчас, а когда будет готово? Вот тут-то на сцену выходят футуры. Футура (Future) - будущий результат выполнения сопрограммы. Метод ensure_future поручает циклу событий выполнить сопрограмму и сразу же, в момент вызова, возвращает футуру, в которой будет значение, но неизвестно когда. Вызывающая сторона может подождать выполнения футуры так же, как ожидало саму сопрограмму async def callee(): return 'Hello' async def caller(): loop = asyncio.get_event_loop() future = loop.ensure_future(callee()) result = await future print(result + ' World') Или может заняться своими делами, периодически проверяя готовность async def caller(): loop = asyncio.get_event_loop() future = loop.ensure_future(callee()) while not future.done(): # Какие-нибудь циклические дела print(future.result() + ' World') Или установить на футуру колбэк async def caller(): loop = asyncio.get_event_loop() future = loop.ensure_future(callee()) future.add_done_callback(lambda f: print(f.result() + ' World')) # какие-нибудь другие важные дела Или может собрать их в список и ждать все. Или не все, а только ту, которая будет выполнена первой, а остальные проигнорировать. Или передать футуру другой сопрограмме, а самой заняться каким-нибудь другим делом. В общем, это "очень полезный горшок, куда можно класть какие хочешь вещи". Осталось только разобраться, чем отличаются футуры от задач. Ничем не отличаются, по большому счёту. Класс Task - это наследник класса Future. А существенная разница между asyncio.create_task() и loop.ensure_future() только в том, что первой не было до Python 3.7. Подытоживая: Task - это задача, поставленная циклу событий, на выполнение coroutine, одновременно являющаяся Future, которая представляет собой результат выполнения Task когда-нибудь в будущем. @python_job_interview

⚡️ Задача: найдите первый неповторяющийся символ в строке, выполнив только один обход Для заданной строки найдите в ней первый неповторяющийся символ, выполнив только один ее обход. Например, Input: string is ABCDBAGHC Output: первый неповторяющийся символ: D Простым решением было бы сохранить количество каждого символа в словаре или списке, пройдя его один раз. Затем еще раз просмотреть строку, чтобы найти первый символ, имеющий значение 1. Временная сложность этого решения равна O(n), где n длина входной строки. Проблема с этим решением заключается в том, что строка проходится дважды, что нарушает ограничения программы. Мы можем решить эту задачу за один обход строки. Идея состоит в том, чтобы использовать словарь для хранения количества каждого отдельного символа и индекса его первого или последнего вхождения в строку. Затем пройтись по словарю и найти символ с минимальным индексом строки. # Функция поиска первого неповторяющегося символа в # строке, выполнив только один ее обход def findNonRepeatingChar(s): # Базовый вариант if not s: return -1 # словарь # для хранения количества символов и индекса их # последнее вхождение в строку d = {} for index, char in enumerate(s): frequency, prevIndex = d.get(char, (0, index)) d[char] = (frequency + 1, index) # хранит индекс первого неповторяющегося символа min_index = -1 # Проходим словарь и находим символ for key, values in d.items(): count, firstIndex = values if count == 1 and (min_index == -1 or firstIndex < min_index): min_index = firstIndex return min_index if __name__ == '__main__': s = 'ABCDBAGHC' index = findNonRepeatingChar(s) if index != -1: print('первый неповторяющийся символ: ', s[index]) else: print('Таких символов нет') 👉 Пишите ваше решение в комментариях👇 @python_job_interview

⚡️ Задача Инструкция yield позволяет создавать генераторы. Инструкция yield позволяет создавать генераторы. В отличие от объявления return в функции, где возвращается один объект, yield при каждом вызове функции генерирует новый объект. Фактически это дает возможность использовать генераторы в циклах. Самая важная причина применения такой инструкции - экономия памяти, когда не требуется сохранять всю последовательность, а можно получать ее элементы по одному. Ученик написал генератор show_letters(some_str), выводящий все символы строки на печать, но только в том случае, если они являются буквами (остальные игнорируются). Сократите код функции. Код --- def show_letters(some_str): clean_str = ''.join([letter for letter in some_str if letter.isalpha()]) for symbol in clean_str: yield symbol Конструкция yield from позволяет полностью убрать цикл из функции. Она "вкладывает" один генератор внутрь другого, что дает возможность управления несколькими генераторами. Решение - IDE def show_letters(some_str): yield from ''.join([letter for letter in some_str if letter.isalpha()]) random_str = show_letters('A!sdf 09 _ w') print(next(random_str)) print(next(random_str)) Результат выполнения A s @python_job_interview

Надоели скучные видео уроки, по которым невозможно учиться? Команда python-программистов из Devman понимает, как важно получа
Надоели скучные видео уроки, по которым невозможно учиться? Команда python-программистов из Devman понимает, как важно получать реальный опыт во время обучения. Просмотр видео не научит вас самостоятельно писать код и не даст вам опыт коммерческой разработки, который так нужен работодателям. Именно поэтому команда Devman создала программу, которая гарантирует качественный трек от новичка до мидла. Во время обучения вы получите: – Опыт коммерческой разработки в CV; – 50+ небольших и 9 полноценных проектов; – Трехмесячную оплачиваемую стажировку; – Опыт прохождения собеседований, в том числе технических; – Трудоустройство в компаниях-партнерах или помощь с подбором вакансий. Курс длится 13 месяцев, а у вас есть возможность попробовать первую неделю обучения без предварительной оплаты и определиться со своими возможностями в профессии. За подробностями переходите по ссылке → bit.ly/3XuWM96 Реклама. ООО Девман 2VtzqvEXiYT

Что такое дескрипторы данных? Очень часто переменные, инициализируемые в классе, являются однотипными. Например, есть класс Employee (сотрудник), принимающий параметры: имя, фамилия, отчество, должность. Все они являются строками. Следовательно, прежде чем создать экземпляр класса, нужно проверить, что пользователь ввел строки. А для этого потребуются сеттеры, проверяющие тип вводимых параметров. В итоге, мы 4 раза повторим код проверки. Нарушается принцип DRY (don't repeat yourself). Для таких ситуаций удобно использовать дескрипторы (они, к слову, широко применяются во фреймворке Django при создании моделей). Дескриптор - такой атрибут объекта, поведение которого переопределяется специальными методами. Проще говоря, доступ к какому-то свойству экземпляра можно переопределить с учетом дополнительных проверок. Если делать эти верификации без дескрипторов, то один и тот же код начнет повторяться. Существует 4 метода протокола дескрипторов: get__() - получить значение свойства; 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_interview

Уроки по SQL теперь в Телеграм! How to SQL – здесь по коротким постам вас обучат работать с базами данных, полезными инструме
Уроки по SQL теперь в Телеграм! How to SQL – здесь по коротким постам вас обучат работать с базами данных, полезными инструментами и дадут инструкции по работе с кодом. Подпишитесь и освойте самую перспективную нишу в айти: @howtosql

Когда применяются ленивые вычисления и в чем их логика Ленивые вычисления предполагают, что не нужно ничего делать до тех пор, пока в этом нет необходимости. Так, если мы не обратились к свойству класса (которое определяется некими математическими операциями, например), то не нужно заранее его рассчитывать. На этом базируется, в том числе, логика генераторов. Многие итераторы также являются ленивыми. Это не просто удобно, но позволяет экономить память и время на вычисление. Нагляднее всего можно понять преимущество ленивых вычислений (и итераторов) на следующем примере. # Создадим итерабельный объект nums = range(1, 12121212112) nums[10543210010] 10543210011 # Практически моментальный вывод list(nums) MemoryError Функция range()– ленивая. Она заранее не формирует последовательность из гигантского количества чисел. А когда мы обращаемся к некому ее элементу по индексу (это разрешено, так как она создает итерабельный объект), он выводится почти сразу. Если вы рискнете преобразовать этот массив чисел в список, то случится одно из двух: либо выведется ошибка о нехватке памяти на компьютере, либо очень-очень долго будет формироваться список всех объектов. @python_job_interview

Кто такой аналитик данных? Этот специалист умеет интерпретировать данные и извлекать из них пользу для бизнеса. 📊Аналитик хо
Кто такой аналитик данных? Этот специалист умеет интерпретировать данные и извлекать из них пользу для бизнеса. 📊Аналитик хорошо разбирается в источниках данных, умеет находить и исправлять в них проблемы, делать визуализации, формулировать и проверять гипотезы. Аналитик проводит эксперименты — в частности, он занимается A/B-тестированием. Хотите этому научиться? Запишитесь на очную программу «Аналитик данных». Занятия проходят в корпусе Вышки в Москве на Покровском бульваре, 11. Ведется онлайн-трансляция и рассылаются записи каждого занятия. Программа организована Центром непрерывного образования ФКН НИУ ВШЭ. Вы изучите: ✅ основы баз данных и работу с ними с помощью языка SQL; ✅ язык Python и его применения для сбора, визуализации и анализа данных; ✅ статистику и машинное обучение; ✅ конкретные аналитические и продуктовые подходы, которые понадобятся при работе над реальными задачами. Старт: 22 февраля 2023. Продолжительность: 1 год. Стоимость: 390 000 рублей. Регистрируйтесь по ссылке.