Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
911 links
№ 4974297878

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

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

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

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
⚙️ Улучшение работы со строками

Конкатенация строк через + в цикле создаёт множество временных объектов, что замедляет выполнение программы. Вместо этого используйте join().

Проблема: При конкатенации строк через + создаётся новый объект строки на каждом шаге.

✔️ Решение: Используйте str.join(), который работает быстрее, так как заранее выделяет память для итоговой строки.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ weakref.ref()

weakref.ref() из модуля weakref создаёт слабую ссылку на объект. Слабая ссылка не увеличивает счётчик ссылок объекта, позволяя ему быть удалённым сборщиком мусора, если больше нет сильных ссылок на него.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ memoryview()

memoryview() — это встроенный метод Python, который позволяет работать с буфером данных без их копирования. Это полезно для работы с большими массивами данных, таких как байты или массивы, где важна производительность.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Вопросы_с_собеседования
Как проверить файл .py на синтаксические ошибки, не запуская его?

Утилита py_compile, позволит проверить файл .py на наличие синтаксических ошибок без его запуска.

Используется py_compile очевидно:
1. открываем командную строку/терминал.
2. переходим в каталог, содержащий файл .py, который вы хотите проверить
3. выполняем: python -m py_compile yourfile.py где yourfile.py - это имя файла, который вы хотите проверить.

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

Когда это может быть полезно? Например, если код большой и в процессе задействует много ресурсов, а нужно всего лишь удостовериться в его валидности.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как это работает? — Рекурсия на примере факториала

Рекурсия — это техника, при которой функция вызывает саму себя. Функция факториала — классический пример использования рекурсии. Давайте разберём, как это работает.

➡️ Как это работает:

Если n == 0, функция возвращает 1 (базовый случай).
В остальных случаях функция вызывает саму себя с аргументом n - 1.
Результаты этих вызовов умножаются на текущее значение n.

Развернутый аналог:
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i
return result


Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ tempfile.NamedTemporaryFile()

Метод tempfile.NamedTemporaryFile() из модуля tempfile создаёт временный файл, который автоматически удаляется при закрытии. Это удобно для временного хранения данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ abc.ABCMeta

Класс abc.ABCMeta из модуля abc используется для создания абстрактных базовых классов (Abstract Base Classes). Это позволяет определить методы, которые должны быть реализованы в подклассах, и предотвращает создание экземпляров базового класса.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Любимые подписчики, поздравляю вас с наступающим новым годом! Пусть в 2025 году исполнятся все ваши самые заветные желания🎄🎄🎄🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
🚫 Антипаттерн недели: Использование вложенных циклов для обработки больших данных

Вложенные циклы при обработке больших объёмов данных значительно снижают производительность, особенно если внутри вложенного цикла выполняются сложные операции. Это приводит к избыточному времени выполнения программы.

✔️ Используйте встроенные функции и методы, такие как zip, enumerate или библиотеку numpy, чтобы сократить количество циклов.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🚫 Антипаттерн недели: Неоптимальная фильтрация данных через циклы

Использование обычных циклов для фильтрации данных в списках или других коллекциях может быть неэффективным и затрудняет читаемость кода. Это особенно актуально, когда в Python уже есть встроенные средства для таких задач.

✔️ Используйте встроенные функции, такие как filter() или list comprehension, чтобы сделать код более читаемым и производительным.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ sys.getrefcount()

Метод sys.getrefcount() позволяет получить количество ссылок на объект. Это полезно для анализа работы сборщика мусора и управления памятью в Python.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ asyncio.gather()

Метод asyncio.gather() из модуля asyncio позволяет запускать несколько асинхронных задач одновременно и ожидать их завершения. Это удобный инструмент для работы с конкурентным выполнением задач.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ inspect.getclosurevars()

Метод inspect.getclosurevars() из модуля inspect позволяет извлечь значения замыканий из функции. Это полезно для анализа внутреннего состояния функций с замыканиями.

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