Библиотека собеса по Python | вопросы с собеседований
6.13K subscribers
599 photos
9 videos
292 links
Вопросы с собеседований по Python и ответы на них.

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
⚡️Proglib запускает канал про ИИ для генерации звука

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

⭐️генерация голоса и музыки
⭐️замена и перевод речи
⭐️распознавание звуков

👉Подписывайтесь!
Что такое подгенератор (subgenerator)?

Подгенератор создается с помощью конструкции yield from внутри генератора.

Использование подгенераторов позволяет разбить генератор на несколько частей для упрощения кода и оптимизации памяти. Это полезный инструмент при работе с последовательностями.

Механизм передает значения между генераторами без сохранения всей последовательности в памяти и блокирует основной генератор до полного завершения подгенератора.
Как проверить файл .py на синтаксические ошибки, не запуская его?

Утилита py_compile, позволит проверить файл .py на наличие синтаксических ошибок без его запуска.

Вы можете использовать командную строку или терминал для проверки файла .py на наличие синтаксических ошибок, не запуская его, используя флаг -m с модулем py_compile.

Откройте командную строку или терминал. Перейдите в каталог, содержащий файл .py, который вы хотите проверить, где yourfile .py — это имя файла, который вы хотите проверить.
Удаление дубликатов в словаре

Стратегия заключается в преобразовании списка словарей в список кортежей, где кортежи содержат элементы словаря.

Поскольку кортежи могут быть хешированы, вы можете удалить дубликаты с помощью set(используя здесь понимание множества , более старой альтернативой Python будет set(tuple(d.items()) for d in l)) и после этого заново создать словари из кортежей с помощью dict.

Более развернутый ответ можно найти здесь.
Данные о памяти

Благодаря пакету shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.
ChainMap

ChainMap — это инструмент из модуля collections, который позволяет объединить несколько словарей в один объект, доступный как единый словарь. Это удобно, когда вам нужно работать с несколькими словарями, представляющими разные области видимости или контексты, и вам нужно установить приоритеты доступа к данным.
Напишите функцию на Python, которая принимает корень бинарного дерева поиска и целое число k, и возвращает k-ый по величине элемент в этом дереве.

Условия:
Бинарное дерево поиска (BST) — это дерево, в котором каждый узел имеет не более двух детей, и для каждого узла его левое поддерево содержит только узлы с ключами, меньшими чем ключ узла, а правое поддерево — только узлы с ключами, большими чем ключ узла.
k всегда валидно и находится в пределах количества узлов в дереве.

Объяснение:
Функция kthSmallest принимает корень бинарного дерева и число k.
Вложенная функция inorder реализует обход дерева в порядке «лево-корень-право», что гарантирует получение элементов в порядке возрастания.
Рекурсивный вызов inorder собирает значения узлов в список.
Функция возвращает k-1 элемент этого списка, так как индексация в Python начинается с нуля.

Этот вопрос проверяет знания кандидата в области алгоритмов обхода дерева, рекурсии и понимания структур данных, таких как бинарные деревья поиска.
Обмен ключами и значениями словаря

Итак, насколько сложно поменять местами значения и ключи в словаре? Совсем несложно, по крайней мере, в Python.

Выше представлен действительно изящный способ манипулирования словарями.
Сокращение ссылок

Скорее всего, хоть раз, но вы сталкивались с сервисами по сокращению ссылок. Даже, если вы сами не создавали сокращенную ссылку, то хотя бы видели таковые в описаниях к различным роликам или на сайтах.

Создать такую ссылку можно всего за три строчки кода, при помощи использования библиотеки PyShorteners. Вам нужно установить библиотеку в проект, выполнить её подключение, а также создать объект на её основе.

Установка библиотеки — pip install pyshorteners.
🐍🤖💬 Создаём бота-автоответчика для Telegram на ChatGPT и Aiogram 3: пошаговое руководство

Не так давно в Telegram вышло большое обновление — «Telegram для бизнеса». В данный момент оно доступно для Premium-пользователей, а в будущем, вероятно, станет отдельным режимом. Одна из его интересных функций — возможность подключить к учётной записи бота для взаимодействия с клиентами в личных чатах.

В новой статье мы рассказываем, как создать такого Telegram-бота, который будет принимать личные сообщения только в нерабочее время и для ответа использовать ChatGPT от OpenAI.

🔗 Читать статью
🔗 Зеркало
Списковое включение (быстрый способ)

Списковое включение — самый эффективный способ итерации любого списка. Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный выше пример кода, чтобы понять, как это работает.
🤖🎙️ S.T.A.R.K. — первый фреймворк для создания голосового ассистента

В новой статье рассказываем о фреймворке S.T.A.R.K. (Speech and Text Algorithmic Recognition Kit), который поможет создать голосового ассистента. У него есть несколько преимуществ:

▪️S.T.A.R.K. работает полностью на устройстве, гарантируя сохранность ваших данных.
▪️С фреймворком можно легко определять контекст и параметры для последующих запросов, а также одновременно выполнять несколько команд.
▪️S.T.A.R.K позволяет использовать ведущие языковые модели.

🔗 Читать статью
🔗 Зеркало
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями

👉Подписаться👈
Можно ли объявлять функцию внутри другой функции? Где она будет видна?

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

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

Вложенные функции могут быть полезны, когда нужно реализовать вспомогательную логику, связанную только с работой родительской функции.
🖥 Итоги недели в мире Python и обзоры новых инструментов

У нас есть еженедельная рассылка о последних открытиях и тенденциях в мире Python. Мы опубликовали новый выпуск на 📰.

Ниже — небольшая часть выпуска, а целиком читайте здесь 👈

🛠 Инструменты

🔘Работа с JSON при помощи orjson
orjson работает быстрее и обращается с JSON данными корректнее, чем стандартная библиотека (и большинство сторонних).

🔘Blender в Jupyter Notebook
ipyblender_experimental позволяет использовать рендеринговый движок Blender в блокнотах Jupyter Notebook. Пока что инструмент совместим только с Python 3.10.

🔥 Интересные проекты

🔘Конструктор резюме
Resume Builder — генератор резюме: содержимое редактируется в файле resume.py, а скрипт resume_builder.py рендерит информацию в виде HTML-страницы.

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

Вы можете подписаться на email-рассылку здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👀Что из этого сгенерировала нейросеть?

Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть:

🌸Новые нейросети и инструменты, например, вот модель генерирует картинки по наброску
🌸Промты для разных задач
🌸Лайфхаки по использованию нейросетей

👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Преобразование изменяемых данных в неизменяемые

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

Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Посмотрите, как можно преобразовать изменяемый тип данных в неизменяемый.
👨‍💻📎 27 сайтов с задачками для оттачивания навыков программирования

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

Вам под силу эти задачи?➡️

🔗 Ссылка на сайты
Please open Telegram to view this post
VIEW IN TELEGRAM
✍️Библиотека программиста» находится в поиске автора оригинальных статей

Кто нужен?
● Энтузиасты (джуны и выше), которые держат руку на пульсе, читают помимо книг зарубежные техноблоги
● Энтузиасты, которым есть что сказать

Тематика
● DevOps
● В четырех случаях из пяти вы предлагаете тему статьи

Объем
● От 7 до 15 тыс. знаков без учета кода
● 2-3 статьи в месяц

Оплата
● 8к руб. за статью
● Работаем с самозанятыми (компенсируем налог), ИП

Я пишу «так себе», что делать?
Чтобы написать статью, которую не стыдно опубликовать, достаточно овладеть инфостилем. У нас есть бесплатный курс для начинающих копирайтеров «Статьи для IT: как объяснять и распространять значимые идеи». Время прохождения курса: 1-2 недели.

✉️Пишите на [email protected]
Скачиваем HTML-код страницы с помощью Python

С помощью следующего фрагмента кода мы можем с легкостью получить HTML-код страницы в интернете.
🐍🎓 5 задач для подготовки к собеседованию по Python

В новой статье используем алгоритмы Манакера и заметающей прямой, определяем границы окна с k-элементами, вычисляем площадь участков разного цвета и находим наибольшую увеличивающуюся подпоследовательность.

🔗 Читать статью
🔗 Зеркало