28154
Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month
👩💻 Задача по 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 👩💻
os.rename()
В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.
Python Learning 👩💻
⚙️ 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 👩💻
Найдите ошибку в коде
Ошибка в этом коде заключается в том, что функция factorial() вызывает саму себя, если n равно -1. В этом случае функция будет вызывать себя бесконечно, так как n никогда не станет равно 0.
Чтобы исправить ошибку, необходимо добавить условие, которое будет проверять, равно ли n 0. Если это так, то функция должна возвращать 1, а не вызывать саму себя.
Python Learning 👩💻
➡️ Использование модуля ast для анализа и модификации исходного кода Python
Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.
🗣 Этот модуль предоставляет доступ к внутренним структурам Python, что делает его полезным для статического анализа кода или автоматического изменения исходного текста программы.
✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.