Python Learning
33.2K subscribers
1.95K photos
8 videos
7 files
962 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
⚙️ pathlib.Path.glob()

В Python метод Path.glob() из модуля pathlib используется для поиска файлов и директорий, соответствующих шаблону. Он мощнее, чем простое перечисление файлов, и поддерживает поиск с использованием подстановочных знаков.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Как выбрать стэк для ML-задач на соревнованиях?

Разбираемся на примере E-CUP 2025 от Ozon Tech. В новой статье собрали рабочие инструменты для решения типичных заданий по машинному обучению:
1️⃣ Рекомендации: предсказание следующей покупки пользователя.
2️⃣ Логистика: автопланирование курьеров.
3️⃣ Контроль качества: автоматическое выявление поддельных товаров.

Эти задачи предстоит решить на E-CUP 2025. Регистрация открыта до 17 августа включительно

Статья поможет разобраться, какие инструменты из богатой экосистемы open-source проектов лучше использовать на соревновании:
🔹 Библиотеки и фреймворки для построения рекомендательных систем и маршрутизации.
🔹 Градиентный бустинг и графовые нейросети.
🔹 Оптимизация маршрутов и работа с геоданными.
🔹 Поиск аномалий и дефектов, работа с мультимодальными данными.

Если вы участвуете в соревновании или просто ищете надежный стэк для ML-прототипов — читайте и сохраняйте: https://cnrlink.com/ecup25articlepylearn?erid=2W5zFJbWH7W
❤‍🔥2👍2🔥1
Вопрос на собеседовании

Как работает менеджер контекста (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"


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
⚙️ textwrap.dedent()

В Python метод textwrap.dedent() удаляет общие отступы из многострочного текста. Это полезно для упрощения форматирования строк, особенно в документации или больших блоках текста.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
➡️ Masonite — мощный Python-фреймворк для веб-приложений

Masonite — это современный и простой в использовании фреймворк для создания веб-приложений. Он предлагает удобный API, поддержку архитектуры MVC и встроенные инструменты для миграций и тестирования.

Поддержка инверсии управления (IoC) для гибкого управления зависимостями.
Интеграция с популярными инструментами, такими как ORM Orator.
Удобная система маршрутизации и шаблонов.

🔗 Ссылочка на доку

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚙️ itertools.cycle

В Python функция itertools.cycle() создаёт бесконечный цикл по переданному итерируемому объекту. Это полезно для повторения элементов последовательности.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
👩‍💻 Задача по Python: Поиск первого неповторяющегося символа в строке

Напишите функцию, которая находит первый символ в строке, который не повторяется. Если все символы повторяются, функция должна вернуть None.

Пример:

print(first_unique_char("swiss"))  # Ожидаемый результат: "w"
print(first_unique_char("aabb")) # Ожидаемый результат: None


Решение задачи на картинке

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤔2
Что будет выведено при выполнении кода?

Пояснение
⬇️
Декоратор заменяет функцию say_hello на функцию wrapper. Когда вызывается say_hello, выполняется wrapper, который сначала выводит Before function call, затем вызывает оригинальную функцию func() (say_hello) и выводит её результат Hello!. После этого завершается фразой After function call.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔2😱1
Вопрос на собеседовании

Как работает функция 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 Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⚙️heapq.nlargest() и heapq.nsmallest()

В Python функции heapq.nlargest() и heapq.nsmallest() позволяют получить n наибольших или наименьших элементов из коллекции. Это удобно для задач, связанных с выборкой экстремальных значений.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
⚙️ string.Template

В Python класс string.Template из модуля string позволяет подставлять значения в строки с использованием плейсхолдеров. Это удобный способ работы с шаблонами текста.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
👩‍💻 Задача по Python: Объединение и сортировка двух списков

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

Пример:

list1 = [3, 1, 4, 1, 5]
list2 = [9, 2, 6, 5, 3, 5]
result = merge_and_sort(list1, list2)
print(result)
# Ожидаемый результат: [1, 2, 3, 4, 5, 6, 9]


Решение задачи на картинке ☝️

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔2
⚙️ reversed()

В Python встроенная функция reversed() возвращает итератор, который перебирает элементы последовательности в обратном порядке. Это удобно для работы с последовательностями, когда нужен обратный порядок.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🆒2
⚙️str.startswith() и str.endswith()

В Python методы str.startswith() и str.endswith() проверяют, начинается или заканчивается строка на указанную подстроку. Это удобно для работы с текстом, например, валидации данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2
⚙️round()

В Python функция round() округляет число до заданного количества знаков после запятой. Это полезно для форматирования чисел и работы с математическими расчётами.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🆒4
⚙️math.ceil() и math.floor()

В Python функции math.ceil() и math.floor() из модуля math используются для округления чисел вверх или вниз до ближайшего целого значения. Это полезно для контроля направления округления.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Она снова не ответила? Вот почему твои переписки умирают

— «Привет», «Как дела?», «Что делаешь?», «Почему молчишь?», «Сколько лет?» «Откуда ты?», «Где работаешь?» – серьёзно? 🤦

Добавь сюда кринжовые попытки рассмешить — и вместо свидания ты получишь очередную мертвую переписку или отмазки в духе «устала/заболела/извини, не могу — кошка наблевала».

Проблема в том, что такие фразы не вызывают интереса. Девушка просто не видит в тебе мужчину, с которым стоит продолжать.

Что делать? Использовать проверенную стратегию переписки.
Например: вместо банального «спокойной ночи» — отправь любое сообщение из шаблонов в канале, и ты офигеешь от реакции. Она сама захочет писать первой.

Шаблоны и стратегию ты найдешь в канале Вани Абсента. Он помогает стать магнитом для женщин и построить яркие отношения, которые наполняют и зажигают: @absent

В канале ты найдёшь:

— пошаговый алгоритм, как влюбить девушку мечты – от первой переписки до секса;
— что делать на первом свидании, чтобы домой уехать с ней;
— как стать сильным уверенным мужчиной со счастливыми отношениями, сильным окружением и высоким доходом.

👉 Подписывайся — https://yangx.top/+68l_H37nlG4yNzJi

И действуй, а не смотри, как девушки мечты проходят мимо.
🗿5🤔1
Вопрос на собеседовании

Что такое __slots__ в Python, как они работают, и в каких случаях их стоит использовать?

Ответ ⬇️
__slots__ — это специальный атрибут класса, который определяет фиксированный набор атрибутов для экземпляров класса. Это уменьшает потребление памяти, так как вместо хранения атрибутов в стандартном словаре (__dict__), они хранятся в виде фиксированной структуры. __slots__ полезны, если нужно создавать большое количество объектов одного класса, где экономия памяти критична. Однако __slots__ ограничивает добавление новых атрибутов, что делает классы менее гибкими.

Пример использования ⚙️
class OptimizedClass:
__slots__ = ['name', 'age'] # Указываем фиксированные атрибуты

def __init__(self, name, age):
self.name = name
self.age = age

# Пример использования
obj = OptimizedClass('Иван', 30)
print(obj.name) # Иван
print(obj.age) # 30

try:
obj.address = 'Москва' # Ошибка: нельзя добавить новый атрибут
except AttributeError as e:
print(e) # "'OptimizedClass' object has no attribute 'address'"


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⚙️list.append()

В Python метод list.append() добавляет элемент в конец списка. Это самый простой способ динамически расширять список.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9