Python Backend | YeaHub
1.15K subscribers
142 photos
37 videos
6 files
223 links
Теория, подготовка к интервью и курсы для Python разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#ЛитКод
Задача: 354. Russian Doll Envelopes

Вам дан двумерный массив целых чисел envelopes, где envelopes[i] = [wi, hi] представляет ширину и высоту конверта.

Один конверт может поместиться в другой, если и только если ширина и высота одного конверта больше ширины и высоты другого конверта.
Верните максимальное количество конвертов, которые вы можете вложить друг в друга (т.е. поместить один в другой).

Примечание: Вы не можете поворачивать конверт.

Пример:
Input: envelopes = [[5,4],[6,4],[6,7],[2,3]]
Output: 3
Explanation: The maximum number of envelopes you can Russian doll is 3 ([2,3] => [5,4] => [6,7]).


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

1⃣Отсортируйте массив конвертов по возрастанию по первой размерности (ширине) и по убыванию по второй размерности (высоте).

2⃣Извлеките вторую размерность (высоты) отсортированного массива.

3⃣Найдите длину наибольшей возрастающей подпоследовательности в массиве высот.

😎 Решение:
class Solution:
def lengthOfLIS(self, nums: List[int]) -> int:
dp = []
for num in nums:
i = bisect_left(dp, num)
if i < len(dp):
dp[i] = num
else:
dp.append(num)
return len(dp)

def maxEnvelopes(self, envelopes: List[List[int]]) -> int:
envelopes.sort(key=lambda x: (x[0], -x[1]))
second_dim = [e[1] for e in envelopes]
return self.lengthOfLIS(second_dim)


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Скрипт мониторинг YouTube каналов

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

ЯП: Python 3.11+
Модули:
requests , pyTelegramBotAPI
Скачать скрипт

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какая библиотека Python обычно используется для работы с векторными и матричными операциями?
Anonymous Quiz
25%
pandas
34%
matplotlib
38%
numpy
3%
scipy
#Собес
🤔 Для чего нужен РЕР8?

PEP 8 - это руководство по стилю написания кода на Python. Оно описывает соглашения о форматировании, такие как отступы, длина строк, имена переменных и функций, чтобы код был читаемым и понятным для других разработчиков.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#вакансии
👨‍💻 Python developer

Локация: Удалённо в РФ
Компания: itWit (https://itwit.io/)
ЗП: от 180 000 до 280 000 р.
Занятость: Полная
Опыт: от 4-х лет

🚩Что мы предлагаем
🟡 Полностью удаленный формат работы;
🟡 Оформление по Самозанятости/ИП;
🟡 Дополнительная финансовая поддержка на спорт, обучение, перелеты, лечение;
🟡Быстрый заход на проект.

🚩Что мы ждем от вас
🔵 Гражданство и локация РФ;
🔵Хорошие знания: Python, Django, FastApi от 4-х лет, навыки работы с БД (MSSQL, SQL, PostgreSQL и др.), опыт по синхронизации со сторонними сервисами, git, mvc, bash, docker;
🔵 Опыт разработки от 5 лет;
🔵Умение разбираться в чужом коде;
🔵Опыт разработки сложных проектов;
🔵Знание регулярных выражений;
🔵Быть внимательным к деталям;
🔵Умение работать в команде, коммуницировать с коллегами.

💬 Резюме отправлять: @kkkateee19

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой метод используется для создания списка кортежей из двух списков?
Anonymous Quiz
33%
map()
37%
zip()
22%
chain()
8%
product()
#Собес
🤔 Что такое асинхронность в контексте Python?

Асинхронность - это способ выполнения задач без блокировки программы. Python позволяет писать асинхронный код с помощью async И await , чтобы обрабатывать множество задач одновременно, не дожидаясь завершения долгих операций, таких как запросы к серверу или чтение файлов.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤑 Бот для торговли криптовалютами на Python

🟠Автоматическая торговля — позволяет запускать торговые стратегии на различных биржах.
🟠Backtesting — тестирование стратегий на исторических данных.
🟠Стратегии на Python — возможность создавать и кастомизировать стратегии.
🟠Поддержка множества бирж — Binance, Bybit, Kraken и другие.
🟠Telegram-бот — для управления и мониторинга работы бота удаленно.

Если интересуешься алгоритмической торговлей, это мощный инструмент для разработки и тестирования стратегий
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядная инфографика о различии в скорости выполнения задач между Java, C и Python:
🤔 Какой метод используется для проверки, является ли строка допустимым идентификатором в Python?
Anonymous Quiz
55%
isidentifier()
25%
isid()
10%
isvar()
11%
isalpha()
#Собес
🤔 Что такое магические методы

Магические методы (dunder methods) - это специальные методы в Python, имена которых начинаются и заканчиваются двумя символами подчёркивания (например, _init_, _str_). Они позволяют определять, как объект реагирует на стандартные операции, такие как арифметика или сравнение, и управлять его поведением.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой из перечисленных типов данных позволяет сохранить несколько элементов различных типов?
Anonymous Quiz
17%
set
10%
frozenset
62%
list
11%
tuple
#ЛитКод
Задача: 631. Design Excel Sum Formula

Имеется n различных онлайн-курсов, пронумерованных от 1 до n. Вам дан массив courses, где courses[i] = [durationi, lastDayi] указывает, что i-й курс должен быть пройден непрерывно в течениеi дней и должен быть закончен до или в lastDayi. Вы начинаете в 1-й день и не можете проходить два или более курсов одновременно. Верните максимальное количество курсов, которые вы можете пройти.

Пример:
Input
["Excel", "set", "sum", "set", "get"]
[[3, "C"], [1, "A", 2], [3, "C", ["A1", "A1:B2"]], [2, "B", 2], [3, "C"]]
Output
[null, null, 4, null, 6]


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

1⃣Инициализация
Создайте класс Excel, который будет инициализировать матрицу нужного размера и хранить текущие значения ячеек. Реализуйте методы для установки значений, получения значений и вычисления суммы.

2⃣Метод установки значений
Реализуйте метод set, который будет изменять значение ячейки в матрице.

3⃣Метод вычисления суммы
Реализуйте метод sum, который будет вычислять сумму значений ячеек, указанных в списке numbers. Метод должен поддерживать как одиночные ячейки, так и диапазоны ячеек.

😎 Решение:
class Excel:

def __init__(self, height: int, width: str):
self.mat = [[0] * (ord(width) - ord('A') + 1) for _ in range(height)]
self.formulas = {}

def set(self, row: int, column: str, val: int) -> None:
self.mat[row - 1][ord(column) - ord('A')] = val
self.formulas.pop((row, column), None)

def get(self, row: int, column: str) -> int:
if (row, column) in self.formulas:
return self._evaluate_formula(row, column)
return self.mat[row - 1][ord(column) - ord('A')]

def sum(self, row: int, column: str, numbers: List[str]) -> int:
self.formulas[(row, column)] = numbers
return self._evaluate_formula(row, column)

def _evaluate_formula(self, row: int, column: str) -> int:
total = 0
for number in self.formulas[(row, column)]:
if ':' in number:
start, end = number.split(':')
start_row, start_col = int(start[1:]), start[0]
end_row, end_col = int(end[1:]), end[0]
for r in range(start_row, end_row + 1):
for c in range(ord(start_col), ord(end_col) + 1):
total += self.get(r, chr(c))
else:
r, c = int(number[1:]), number[0]
total += self.get(r, c)
return total


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#книги
🤓 Книга автора Зеда А. Шоу "Изучение Python 3 сложным путем"

🟠Состоит из 52 тщательно разработанных упражнений, охватывающих темы от работы с командной строкой и структур данных до алгоритмов сортировки, парсинга текста и работы с SQL-базами данных. Каждое упражнение направлено на развитие практических навыков через реализацию проектов, таких как создание блогов, текстовых редакторов и интерпретаторов.

Подход книги основан на активном написании кода и решении реальных задач, что способствует глубокому пониманию и уверенной работе с Python.
Читать бесплатно

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 В чем отличие списка от кортежа?

Список ( list ) - изменяемый тип данных, а кортеж ( tuple ) - неизменяемый. Списки используют больше памяти, но позволяют добавлять, изменять или удалять элементы, тогда как кортежи используют меньше памяти и обычно применяются для фиксированных данных.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
📞 ТОП 10 Проектов для начинающих разработчиков

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой модуль позволяет работать с файлами в Python?
Anonymous Quiz
46%
file
6%
text
36%
os
12%
sys
#новости
🤕 Grok 3 не прошел тест на "отскакивание шестиугольного шара"

Grok 3 — это новейшая версия чат-бота с искусственным интеллектом, разработанного компанией xAI под руководством Илона Маска.

Маск охарактеризовал Grok 3 как «самый умный ИИ на Земле».

Но однако он не очень хорошо справляется с кодированием

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое list comprehension?

List comprehension - это сокращённый синтаксис для создания списков на основе последовательностей. Он позволяет создавать новые списки, применяя условия и преобразования к элементам существующего списка или другой последовательности.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM