28154
Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month
⚙️heapq.nlargest() и heapq.nsmallest()
В Python функции heapq.nlargest() и heapq.nsmallest() позволяют получить n наибольших или наименьших элементов из коллекции. Это удобно для задач, связанных с выборкой экстремальных значений.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Декоратор заменяет функцию say_hello на функцию wrapper. Когда вызывается say_hello, выполняется wrapper, который сначала выводит Before function call, затем вызывает оригинальную функцию func() (say_hello) и выводит её результат Hello!. После этого завершается фразой After function call.
⚙️ itertools.cycle
В Python функция itertools.cycle() создаёт бесконечный цикл по переданному итерируемому объекту. Это полезно для повторения элементов последовательности.
Python Learning 👩💻
⚙️ textwrap.dedent()
В Python метод textwrap.dedent() удаляет общие отступы из многострочного текста. Это полезно для упрощения форматирования строк, особенно в документации или больших блоках текста.
Python Learning 👩💻
Как выбрать стэк для ML-задач на соревнованиях?
Разбираемся на примере E-CUP 2025 от Ozon Tech. В новой статье собрали рабочие инструменты для решения типичных заданий по машинному обучению:
1️⃣ Рекомендации: предсказание следующей покупки пользователя.
2️⃣ Логистика: автопланирование курьеров.
3️⃣ Контроль качества: автоматическое выявление поддельных товаров.
Эти задачи предстоит решить на E-CUP 2025. Регистрация открыта до 17 августа включительно
Статья поможет разобраться, какие инструменты из богатой экосистемы open-source проектов лучше использовать на соревновании:
🔹 Библиотеки и фреймворки для построения рекомендательных систем и маршрутизации.
🔹 Градиентный бустинг и графовые нейросети.
🔹 Оптимизация маршрутов и работа с геоданными.
🔹 Поиск аномалий и дефектов, работа с мультимодальными данными.
Если вы участвуете в соревновании или просто ищете надежный стэк для ML-прототипов — читайте и сохраняйте: https://cnrlink.com/ecup25articlepylearn?erid=2W5zFJbWH7W
DeepSeek — самая мощная нейросеть в мире? Честно сравним и разберемся на примерах вместе с Кириллом Пшинником, СЕО университета Зерокодер.
⚡️Что ждет вас на вебинаре?
— Сравним DeepSeek-R1 и QWEN 2.5-Max с ChatGPT – кто быстрее, точнее и эффективнее?
— Покажем, как использовать DeepSeek без ограничений и блокировок;
— Разберем, как можно зарабатывать на нейросетях и какие вакансии будут востребованы в 2025 году.
👉 Регистрируйтесь прямо сейчас
Все участники получат готовые инструменты для работы с нейросетями. Эфир подойдет всем, кто хочет сэкономить время, монетизировать навыки и оставаться в тренде технологий 2025 года.
PS: Это первый полноценный практикум от экспертов по DeepSeek. Узнайте и погрузитесь в революционные изменения AI сферы по ссылке.
erid: 2W5zFJph6it
ООО Зерокодер, ИНН 9715401631
⚙️ __del__
В Python метод __del__ служит деструктором, который вызывается при уничтожении объекта. Он позволяет выполнять завершающие действия, такие как освобождение ресурсов или запись логов, перед тем как объект будет удалён сборщиком мусора.
Python Learning 👩💻
✍️ Циклический сдвиг списка на N элементов вправо
Выше приведено решение с помощью слайсов.
Python Learning 👩💻
🧠Узнаем сколько раз встречается каждая буква в предложении
Код представлен на картинке.
Python Learning 👩💻
⚙️ all()
В Python функция all() проверяет, соответствуют ли все элементы условию (истинны). Отличный способ убедиться, что все значения удовлетворяют требованиям.
Python Learning 👩💻
Срезы
Срезы (slices) в Python — это способ получения подстроки (подсписка) из последовательности, такой как строка (str), список (list) или кортеж (tuple).
Python Learning 👩💻
⚙️ any()
В Python функция any() проверяет, есть ли хотя бы один истинный элемент в итерируемом объекте. Она отлично подходит для быстрых проверок наличия условий, например, поиска элементов в списке.
Python Learning 👩💻
➡️ Разница между list.sort() и sorted() в Pythonlist.sort() сортирует список на месте, изменяя его, и возвращает None, тогда как sorted() создает новый отсортированный список, оставляя оригинал неизменным.
✔️ Оба метода имеют параметры key и reverse, позволяя кастомизировать сортировку.
• list.sort() используется для изменения оригинального списка. • sorted() возвращает новый отсортированный список из любого итерируемого объекта.
🔗 Почитать подробнее
Python Learning 👩💻
❓ Вопрос на собеседовании
Как в Python работают функции с переменным количеством аргументов (*args и **kwargs), и как это можно использовать для создания гибких функций?
Ответ ⬇️
Функции с *args принимают произвольное количество позиционных аргументов, а с **kwargs — именованных аргументов. Это позволяет передавать любое количество значений и делать интерфейс функций более гибким. *args упаковывает аргументы в кортеж, а **kwargs — в словарь.
Пример использования ⚙️
def demo_func(*args, **kwargs):
print("Позиционные аргументы:", args)
print("Именованные аргументы:", kwargs)
demo_func(1, 2, 3, name="Alice", age=25)
# Позиционные аргументы: (1, 2, 3)
# Именованные аргументы: {'name': 'Alice', 'age': 25}
➡️ Использование библиотеки PyTTI для генеративного искусства с использованием нейронных сетей
PyTTI — это необычная библиотека, которая позволяет создавать произведения искусства с помощью нейронных сетей. Она применяет текстурные трансформации и использует модели машинного обучения для генерации изображений, основанных на текстовых описаниях или других данных.• PyTTI подходит для экспериментов с искусственным интеллектом в области генерации изображений и видео.
🔗 Ссылочка на доку
Python Learning 👩💻
❓ Вопрос на собеседовании
Как работает функция zip() в Python, что произойдет, если переданные итерируемые объекты имеют разную длину, и как можно преобразовать результат работы этой функции обратно в оригинальные последовательности?
Ответ ⬇️
Функция zip() берет несколько итерируемых объектов и объединяет их в один итератор, который возвращает кортежи, сформированные из элементов входных последовательностей. Если переданные итерируемые объекты имеют разную длину, zip() завершает свою работу, как только самая короткая из последовательностей исчерпается.
Чтобы преобразовать результат zip() обратно в исходные последовательности, можно использовать распаковку с * (оператор звездочка), которая разделяет кортежи на отдельные списки.
Пример использования ⚙️
# Объединяем два списка
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30]
# zip объединяет элементы двух списков
zipped = zip(names, ages)
print(list(zipped)) # [('Alice', 25), ('Bob', 30)]
# Разъединяем с помощью распаковки
zipped_again = zip(names, ages) # Создаем заново, так как zip() исчерпаем
unzipped_names, unzipped_ages = zip(*zipped_again)
print(unzipped_names) # ('Alice', 'Bob')
print(unzipped_ages) # (25, 30)
👩💻 Задача по Python: Поиск первого неповторяющегося символа в строке
Напишите функцию, которая находит первый символ в строке, который не повторяется. Если все символы повторяются, функция должна вернуть None.
Пример:
print(first_unique_char("swiss")) # Ожидаемый результат: "w"
print(first_unique_char("aabb")) # Ожидаемый результат: None
➡️ Masonite — мощный Python-фреймворк для веб-приложений
Masonite — это современный и простой в использовании фреймворк для создания веб-приложений. Он предлагает удобный API, поддержку архитектуры MVC и встроенные инструменты для миграций и тестирования.• Поддержка инверсии управления (IoC) для гибкого управления зависимостями.• Интеграция с популярными инструментами, такими как ORM Orator.• Удобная система маршрутизации и шаблонов.
🔗 Ссылочка на доку
Python Learning 👩💻
❓ Вопрос на собеседовании
Как работает менеджер контекста (context manager) в Python, и как создать свой собственный?
Ответ ⬇️
Менеджер контекста — это механизм в Python, который автоматически управляет ресурсами, такими как файлы или сетевые соединения. Основное преимущество использования менеджера контекста — автоматическое освобождение ресурсов (например, закрытие файла), даже если произошла ошибка.
Пример использования ⚙️
Для создания менеджера контекста можно использовать:
• Ключевые слова with и open (для встроенных менеджеров контекста).
• Метод __enter__() и __exit__() (для собственных классов).
• Декоратор @contextmanager из модуля contextlib.
# Создание менеджера контекста через класс
class FileManager:
def __init__(self, filename, mode):
self.file = None
self.filename = filename
self.mode = mode
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_value, traceback):
if self.file:
self.file.close()
# Использование собственного менеджера контекста
with FileManager('example.txt', 'w') as f:
f.write('Привет, мир!')
# Файл автоматически закрывается после выхода из блока "with"
⚙️ pathlib.Path.glob()
В Python метод Path.glob() из модуля pathlib используется для поиска файлов и директорий, соответствующих шаблону. Он мощнее, чем простое перечисление файлов, и поддерживает поиск с использованием подстановочных знаков.
Python Learning 👩💻
➡️ Memray — профилирование памяти для Python
Memray — это современный инструмент для профилирования памяти в Python, разработанный командой Bloomberg. Он позволяет детально отслеживать выделение и использование памяти в ваших приложениях, что помогает выявлять утечки и оптимизировать производительность.• Глубокий анализ: Memray отслеживает все выделения памяти, включая те, что происходят в нативных расширениях на C/C++.• Гибкие отчёты: Генерирует отчёты в виде текстовых файлов, графов и HTML-страниц для наглядного представления данных.• Поддержка многопоточности: Корректно работает с многопоточными приложениями, обеспечивая точный анализ.• Интеграция с Jupyter: Позволяет визуализировать данные профилирования прямо в Jupyter Notebook.
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ itertools.combinations()
В Python функция itertools.combinations() генерирует все возможные комбинации элементов заданной длины из итерируемого объекта. Это полезно для задач, связанных с перебором подмножеств.
Python Learning 👩💻
⚙️ filter()
В Python функция filter() используется для отбора элементов, соответствующих условию. Она возвращает итератор, что делает её удобной и эффективной для обработки больших данных.
Python Learning 👩💻
➡️ LiteLLM — использование любого LLM с использованием OpenAI и многое другое
LiteLLM – инструмент для гибкого и лёгкого управления LLM в Python. С ним можно быстро переключаться между моделями, контролировать затраты, интегрировать API без изменений кода и оптимизировать производительность через балансировку нагрузки.• Поддержка единого формата для всех LLM, что упрощает интеграцию.• Возможность управления расходами и ограничения скорости запросов для предотвращения перегрузок.
🔗 Ссылочка на доку
Python Learning 👩💻
❓ Вопрос на собеседовании
Как в Python работает метод __call__() и когда его имеет смысл использовать?
Ответ ⬇️
Метод __call__() позволяет сделать объект вызываемым, то есть, работать с ним как с функцией. Этот метод можно добавить в любой класс, чтобы экземпляр класса можно было вызвать напрямую. Это полезно, когда класс выполняет одну основную задачу и может быть использован как замена функции, сохраняя при этом внутреннее состояние и структуру.
Пример использования ⚙️
class Multiplier:
def __init__(self, factor):
self.factor = factor
def __call__(self, value):
return value * self.factor
double = Multiplier(2)
print(double(5)) # 10
print(double(8)) # 16
👩💻 Задача по Python
Создайте функцию find_longest_substring для поиска самой длинной подстроки в строке, содержащей уникальные символы. Функция должна возвращать длину этой подстроки.
Пример:
print(find_longest_substring("abcabcbb")) # Вернёт 3, т.к. самая длинная уникальная подстрока "abc"
print(find_longest_substring("bbbbb")) # Вернёт 1, т.к. самая длинная уникальная подстрока "b"
print(find_longest_substring("pwwkew")) # Вернёт 3, т.к. самая длинная уникальная подстрока
➡️ Использование библиотеки Arrow для работы с датами и временем в Python
Arrow — это библиотека для более удобной работы с датами и временем в Python. Она предоставляет простой API для создания, преобразования и форматирования объектов datetime, упрощая работу с временными зонами и временем выполнения задач.• Arrow поддерживает естественные синтаксические конструкции и форматирование дат, а также имеет встроенные функции для манипуляции временем.
🔗 Ссылочка на доку
Python Learning 👩💻
⚙️ enumerate()
Когда тебе нужно итерировать по списку с доступом к индексу элемента, используй enumerate(). Эта встроенная функция возвращает и индекс, и сам элемент в одном цикле, что удобно и лаконично.
Python Learning 👩💻
➡️ Изменение регистра строк в Python: capitalize, camelCase, snake_case, и kebab-case
Модуль преобразования строк предлагает удобные функции для изменения регистра текста. Вы можете использовать capitalize, чтобы сделать первую букву заглавной, а также преобразовывать строки в форматы camelCase, snake_case, и kebab-case для различных стилей.
✔️ Эта функция полезна для работы с именами переменных, API или форматами данных.
🔗 Почитать подробнее
Python Learning 👩💻
DABL
DABL (Data Analytics in Business Language) — это библиотека Python, которая упрощает использование машинного обучения для анализа данных. Она предоставляет простой и понятный интерфейс для создания моделей машинного обучения, а также для их обучения и оценки.
Чтобы начать работу с DABL, необходимо установить библиотеку. Это можно сделать с помощью следующей команды:
pip install dabl
Код с картинки создаст модель линейной регрессии, обучит ее на обучающей выборке из трех точек и оценит ее качество на тестовой выборке из тех же трех точек.
Python Learning 👩💻