Python Academy
Python Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Python Academy
تُعد قناة Python Academy (@python_academy) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 43 940 مشتركاً، محتلاً المرتبة 3 050 في فئة التكنولوجيات والتطبيقات والمرتبة 14 328 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 43 940 مشتركاً.
بحسب آخر البيانات بتاريخ 29 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -283، وفي آخر 24 ساعة بمقدار -6، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 4.86%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 2.22% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 135 مشاهدة. وخلال اليوم الأول يجمع عادةً 976 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 6.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل строка, модуль, документация, taskiq, yaml.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Python Academy — один канал вместо тысячи учебников
Чат канала: @python_academy_chat
Сотрудничество: @zubar89
Канал включён в перечень РКН: https://rkn.link/TVu”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 30 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
pathlib, предоставляющий функцию Path, которая обеспечивает все необходимое для эффективной работы с путями к файлам.
Одно из наиболее впечатляющих преимуществ использования pathlib - это упрощение работы с путями за счет использования Path вместо os.path.join, представляя более простой и изящный метод, как показано на изображении.
В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля os, таким как os.mkdir или os.path, на более удобные альтернативы.
#path #os__new__ вызывается для создания экземпляра класса, перед вызовом __init__. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).
В примере мы проверяем, есть ли значение у атрибута instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.
То есть при вызове конструктора класса Singleton, будет возвращаться один и тот же объект из памяти.
#классы #паттерныPython предлагает множество удобных встроенных методов для работы со строками. Один из таких методов - str.replace(), который используется для замены частей строки.
Метод принимает два основных аргумента: первый - это подстрока, которую нужно заменить в исходной строке, а второй - это подстрока, на которую происходит замена.
Кроме того, существует третий необязательный аргумент, определяющий количество замен старой подстроки на новую. Если он не указан, метод заменяет все вхождения.
#python #replacefor, тем самым скачав их последовательно одна за одной.
Но в таких ситуациях как эта (скачивание огромного количества небольших файлов) распараллеливание задачи существенно ускорит процесс.
Для этого воспользуемся функцией ThreadPoolExecutor из стандартного пакета concurrent.futures. Она позволяет запустить нашу функцию, в нескольких екземплярах в параллельных потоках. В конструкторе необходимо указать максимальное количество потоков, которые будут одновременно запущены.
Далее метод .map(download, urls) создает екземпляры нашей функции для скачивания файла, и раскидывает в них элементы списка urls.
Но будьте внимательны: так как скачивание файла — это IO-операция, такой метод не ускоряет вычисления кода. Он лишь позволяет запустить скачивание следующего файла, не дождавшись пока скачается предыдущий.
#python #threadinggetattr, setattr, delattr и hasattr.
По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута.
На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
#python #tips__future__ позволяет подключать функционал из будущих версий языка. Например, можно попробовать импортировать фигурные скобки как в си-подобных языках.
Но будет вызвано исключение, которое говорит "not a chance", что означает "ни единого шанса". Однако есть ещё один интересный момент, а именно – исходный код этого модуля.
Оказывается, интерпретатор CPython сначала запускает файл future.c, когда встречается импорт этого модуля. А само это исключение реализовано на этой строчке.
#пасхалки #futureurl = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция urlencode из модуля urllib.
#трюки #urllibTextBlob можно применять методы строк (upper, split, format и т. д.) и в целом обращаться с ними как с обычными строками.
Документация находится здесь, но некоторые примеры есть и на картинке выше. Еще важно, что несколько функций, например translate(), требуют подключения к интернету.
#textblobPyShorteners, пример кода можно найти на фото.
#python #pyshortenersassert принимает логическое выражение и необязательное сообщение. Она используется для проверки типов, значений аргумента и вывода функции, а также для отладки, поскольку останавливает программу в случае ошибки.
Если выполнить инструкцию assert с логическим выражением, результат которого равен True, ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError.
Однако не нужно пытаться обработать исключение AssertionError блоком try-except. В таком случае assert теряет свой смысл.
В примере мы проверили, является ли переданный аргумент числовым типом данных. Если не является, то будет вызвано исключение и выведено указанное сообщение.
#исключения #assertgTTS (Google Text-to-Speech) для Python, можно легко преобразовывать текст в аудиофайлы. Эта библиотека использует API Google Translate для синтеза речи, обеспечивая высокое качество преобразования. Установка библиотеки производится стандартным способом через pip.
Для начала работы с gTTS необходимо создать его экземпляр, передав текст, который нужно озвучить, в качестве первого аргумента. Также есть возможность указать язык озвучивания через опциональный аргумент, который по умолчанию установлен на английский.
Чтобы сохранить синтезированную речь в аудиофайл, используется метод save, аргументом которого является имя файла.
#python #gttsdeque предпочтительнее, чем обычный список, когда нужны более быстрые операции добавления и вытаскивания элементов с начала и конца контейнера.
deque обеспечивает линейную сложность O(1) для операций добавления и выталкивания, у стандартного списка сложность по этим операциям O(n).
Для deque есть возможность использовать стандартные функции — sum, min, max и другие.phonenumbers основан на библиотеке libphonenumber от Google, которая позволяет форматировать, парсить и проверять номера телефонов.
Основным классом, который представляет номер, является PhoneNumber. Объект можно создать, вызвав метод parse() и передав в аргументы номер телефона в виде строки. Вторым аргументом также можно указать страну.
В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования.
#python #phonenumbersitertools - инструмент в Python для работы с итерируемыми объектами. Он предоставляет различные функции для создания и манипулирования итераторами, что делает его незаменимым инструментом для разработчиков.
Давайте рассмотрим некоторые полезные функции из этого модуля:
1. itertools.count(): Эта функция создает бесконечный итератор, который генерирует последовательность чисел, начиная с заданного значения. Это удобно использовать, например, при создании уникальных идентификаторов.
2. itertools.cycle(): Эта функция создает итератор, который бесконечно повторяет элементы из исходной последовательности. Это может быть полезно, когда вам нужно обрабатывать данные циклически.
3. itertools.islice(): С помощью этой функции можно получить срез элементов из итератора, подобно срезу для списков. Это позволяет работать с большими итерируемыми объектами без необходимости загрузки их в память целиком.
4. itertools.chain(): Эта функция объединяет несколько итерируемых объектов в один, что упрощает итерацию по ним как по одному объекту.
5. itertools.groupby(): Эта функция позволяет группировать элементы итерируемого объекта на основе заданного ключа. Это особенно полезно при анализе и обработке данных.
И это далеко не все функции, доступные в модуле itertools. Он предоставляет множество возможностей для более эффективной итерации и манипуляции данными.