Python Academy
Python Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Python Academy
تُعد قناة Python Academy (@python_academy) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 44 485 مشتركاً، محتلاً المرتبة 2 927 في فئة التكنولوجيات والتطبيقات والمرتبة 14 060 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 44 485 مشتركاً.
بحسب آخر البيانات بتاريخ 30 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 159، وفي آخر 24 ساعة بمقدار -3، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 4.93%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 2.36% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 194 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 052 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 4.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل строка, модуль, документация, taskiq, yaml.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Python Academy — один канал вместо тысячи учебников
Чат канала: @python_academy_chat
Сотрудничество: @zubar89
Канал включён в перечень РКН: https://rkn.link/TVu”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 31 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
__lt__, __le__, __eq__, __ne__, __gt__, __ge__.
Про то, что делает каждый из них расскажем отдельным постом, но сейчас покажем, как можно сильно упростить реализацию подобного класса. Для этого можно использовать декоратор total_ordering из пакета functools.
В таком случае достаточно реализовать в классе только __lt__ и __eq__. Эти два метода являются минимумом, который нужен декоратору для конструирования остальных методов.
#классы-X для указания различных вариантов реализации.
Например, -X dev запускает скрипт в режиме разработки с функциями отладки и runtime-проверки, которые не используются по умолчанию из-за своей медлительности.
Также этот режим выводит дополнительные предупреждения в следующих случаях:
— Незакрытые файлы;
— Unawaited корутины;
— Неизвестная кодировка для str.encode;
— Проблемы с выделением памяти.
В целом, классная штука и имеет смысл периодически запускать скрипты в таком режиме, чтобы не упустить никакие баги.
#pythonitertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость в удалении ненужных объектов последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
#itertoolsCounter из библиотеки collections.
Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.
#collections #countertuple, по своей сути, являются неизменяемыми списками. Структура данных удобная, но мы можем получать данные, используя только числовые индексы.
Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи namedtuple из collections.
Каждый объект в именованном кортеже может быть доступен через уникальный, удобный для чтения человеком, идентификатор. При этом вся функциональность от обычных кортежей сохраняется.
#namedtupleitertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость в удалении ненужных объектов последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
#itertoolssorted() и метод .sorted(), но достаточно важно самому знать хотя бы несколько реализаций.
Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
#списки #сортировкаSpeedtest методы download() и upload() выдают соответственно скорость скачивания и загрузки данных.
Методы отдают результат в байтах, поэтому для наглядности в примере я перевел все данные в мегабайты при выводе.
#speedtestDecimal, который предоставит намного большую точность, но и его может не хватить в некоторых случаях.
Поэтому для идеальных вычислений лучше использовать Fraction, который представляет и хранит число в виде рациональной дроби.
#числа #fraction-X для указания различных вариантов реализации.
Например, -X dev запускает скрипт в режиме разработки с функциями отладки и runtime-проверки, которые не используются по умолчанию из-за своей медлительности.
Также этот режим выводит дополнительные предупреждения в следующих случаях:
— Незакрытые файлы;
— Unawaited корутины;
— Неизвестная кодировка для str.encode;
— Проблемы с выделением памяти.
В целом, классная штука и имеет смысл периодически запускать скрипты в таком режиме, чтобы не упустить никакие баги.
#pythonsubgen, которая будет возвращать числа от 0 до переданного аргумента.
А также ещё одну генераторную функцию delegator, которая будет возвращать числа из итерируемого объекта source, который передадим в качестве аргумента.
Цикл, который можно написать в delegator, можно заменить всего лишь одной строчкой. То есть yield from заменяет цикл for, в котором только возвращаются значения через yield.
Грубо говоря, такая конструкция является неким туннелем передачи данных туда и обратно. В нашей ситуации delegator можно назвать делигирующим генератором, а subgen подгенератором.
#генераторы== и is в приложениях могут возникнуть странные ошибки.
Оператор == проверяет равенство значений двух объектов. А оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.
Но Python в целях производительности кеширует малые числа и короткие строки, поэтому возможны некоторые казусы, как в примере выше.
#тонкостиeval, но знаете ли вы о literal_eval? Вряд ли. Для безопасного исполнения выражений, содержащих исключительно литералы, вы можете делать так, как показано на картинке выше.
Между прочим, данная фича находится в языке уже очень давно.
#tips #eval