Python Backend | YeaHub
1.46K subscribers
188 photos
49 videos
7 files
299 links
Теория, подготовка к интервью и курсы для Python разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
👍 set() в Python — это не только способ убрать дубликаты.

Быстрая проверка на вхождение
Работа с подмножествами и надмножествами
Математика множеств: объединение, разность, пересечение

Настоящий скрытый джем для чистой логики.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥄 Дружеское напоминание: у Python есть библиотека pystray для создания иконок в системном трее

Она позволяет добавлять меню, иконки и взаимодействие с пользователем, прямо из питоновского скрипта, без сложных GUI-фреймворков.

Работает на Windows, macOS и Linux, без внешних зависимостей.

С её помощью можно:

🔵Создавать меню в трее
🔵Обрабатывать клики
🔵Показывать уведомления (через системные средства)

Установка: pip install pystray

Ссылка на документацию: pystray.readthedocs.io

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🛞 Python и чистая архитектура

📖 Читать: ссылка

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #networks
🤔 Что такое IP Spoofing?

IP Spoofing - это техника, при которой злоумышленник подменяет Свой IP-адрес, чтобы скрыть истинный источник трафика. Это используется для маскировки атак, таких как DDoS, или для обхода мер безопасности.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 Знал ли ты, что Python может открыть вкладку браузера?

Без фреймворков. Всего одна строка.

Вот как запустить URL — удобно для создания утилит, повышения продуктивности или автоматического открытия документации из скриптов.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
😎 Совет по Python:

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

Традиционный способ

def find_max(numbers):
max_num = numbers[0]
for num in numbers:
if num > max_num:
max_num = num
return max_num

numbers = [4, 2, 9, 7, 5, 6]
print(find_max(numbers))

# Вывод: 9


Гениальный способ

def find_max(numbers):
return max(numbers)

numbers = [4, 2, 9, 7, 5, 6]
print(find_max(numbers))

# Вывод: 9


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Средство устранения неполадок и есть неполадка

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍2🔥1
#Собес #RabbitMQ
🤔 Что такое сервер в RabbitMQ?

Сервер RabbitMQ — это масштабируемая и надежная реализация AMQP- брокера, который отвечает за управление сообщениями между производителями и потребителями. Он показывает сообщения о запуске и успешно запускает брокер, если конфигурация выполнена корректно.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
😊 Когда-нибудь нужно было разбить список на чанки без циклов?

Вот однострочник, который делает это через срезы.
Без импортов. Без лишнего

Идеально для батчевой обработки данных или постраничного вывода.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
6👎2👍1
#статьи
😴 PyQt6 — полное руководство для новичков

Это руководство охватывает широкий круг тем по работе с PyQt6: создание окон, настройка интерфейса, подключение виджетов, сигналы и события.

Вы научитесь работать с ключевыми компонентами фреймворка, выстраивать архитектуру интерфейса и логику взаимодействия элементов
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
Непосильная задача

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1👎1🔥1😁1
🖥 Middle Python Backend-разработчик в компанию Yappy.

Техническое собеседование, зима 2025. 300к+. Проект: вертикальные видео. Опыт в резюме: 3.3 года. В начале спрашивали про предыдущий опыт.

Вопросы:
- Что такое команда git cherry-pick?
- Как создать генератор с помощью yield?
- Какие дандер-методы нужно реализовать для своего контекстного менеджера?
- Как создать асинхронный контекстный менеджер?

Все вопросы можно посмотреть на нашей платформе

#собес
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2🤝2
#статьи
📞 Фундаментальные шаблоны проектирования на Python

Разбираются классические паттерны на языке программирования python:

наблюдатель, адаптер, команда, компоновщик, декоратор, фасад, фабрика, итератор, заместитель, одиночка, состояние, шаблонный метод.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥2
#полезное
📞 Совет по Python:

Для асинхронного чтения файлов используй aiofiles вместе с асинхронными генераторами — это позволит не блокировать event loop при работе с большими файлами.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #RabbitMQ
🤔 Что такое обмен сообщениями?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
👋 Чувак собрал простого голосового ассистента на 70 строках кода на Python.

В проекте используются:

🔵 livekit — голосовой агент
🔵 AssemblyAI — для преобразования речи в текст
🔵 OpenAI — «мозг» агента, а также генерация аудио из текста

Что особенно классно —
он использовал turn detection от AssemblyAI, и это работает действительно круто

Turn detection сообщает ассистенту, когда собеседник закончил говорить, и пора отвечать.

Раньше для этого использовали паузы и тишину, но такой подход не всегда корректен (представьте, что человек делает паузу, диктуя номер карты). Новая версия turn detection гораздо надёжнее.

Запусти код и поговори с ассистентом. Всё ощущается гораздо естественнее, чем раньше.

Вот репозиторий: https://github.com/svpino/voice-assistant

Инструкции по запуску смотри в файле README.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
#Собес #RabbitMQ
🤔 Как работает RabbitMQ?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3😁2
#Собес #RabbitMQ
🤔 Каковы недостатки RabbitMQ?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#ЛитКод
Задача: 669. Trim a Binary Search Tree

Дано корневое дерево двоичного поиска и нижняя и верхняя границы как low и high. Обрежьте дерево так, чтобы все его элементы лежали в диапазоне [low, high]. Обрезка дерева не должна изменять относительную структуру элементов, которые останутся в дереве (то есть любой потомок узла должен оставаться потомком). Можно доказать, что существует единственный ответ.

Верните корень обрезанного дерева двоичного поиска. Обратите внимание, что корень может измениться в зависимости от заданных границ.

Пример:
Input: root = [1,0,2], low = 1, high = 2
Output: [1,null,2]


👨‍💻 Алгоритм:

1⃣Если node.val > high, то обрезанное двоичное дерево должно находиться слева от узла.

2⃣Если node.val < low, то обрезанное двоичное дерево должно находиться справа от узла.

3⃣В противном случае обрезаем обе стороны дерева.

😎 Решение:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right

class Solution:
def trimBST(self, root: TreeNode, low: int, high: int) -> TreeNode:
if not root:
return None
if root.val > high:
return self.trimBST(root.left, low, high)
if root.val < low:
return self.trimBST(root.right, low, high)
root.left = self.trimBST(root.left, low, high)
root.right = self.trimBST(root.right, low, high)
return root


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1