Python Learning
№ 4974297878 Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/Python_per_month
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Python Learning
تُعد قناة Python Learning (@python_per_month) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 28 437 مشتركاً، محتلاً المرتبة 4 584 في فئة التكنولوجيات والتطبيقات والمرتبة 22 669 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 28 437 مشتركاً.
بحسب آخر البيانات بتاريخ 31 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -249، وفي آخر 24 ساعة بمقدار -11، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 7.66%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 3.25% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 178 مشاهدة. وخلال اليوم الأول يجمع عادةً 925 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 8.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل learning, строка, модуль, собеседование, zip.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“№ 4974297878
Обучающий канал по Python
Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy
По всем вопросам @mascarov_valentin
Реклама на бирже - https://telega.in/c/Python_per_month”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 01 سبتمبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
math.perm(n, k)Где:
n: Количество элементов из которых выбираются k элементов.
k: Количество элементов, которые выбираются.
В первом примере метод возвращает количество способов выбрать 3 элемента из 5 элементов. В результате получается 60 способов.
Во втором примере метод возвращает количество способов выбрать 5 элементов из 10 элементов. В результате получается 252 способа.
#для_начинающихcompress из itertools используется для фильтрации элементов входной последовательности на основе соответствующих элементов булевой последовательности.
Код с картинки создает новый список, включающий только элементы data, для которых соответствующее значение в selectors является True. В данном случае результат будет [1, 3, 5].
#для_начинающихРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruswapcase() в Python является встроенным методом строк (str), который создает новую строку, меняя регистр каждой буквы в исходной строке. Если буква была в верхнем регистре, она будет преобразована в нижний регистр, и наоборот.
#для_начинающихfrozenset представляет собой неизменяемое множество. Основное отличие между set и frozenset заключается в том, что set является изменяемым типом данных, тогда как frozenset не может быть изменен после создания.
Вот несколько ключевых особенностей frozenset:
Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в frozenset после его создания.
Хешируемость: Поскольку frozenset неизменяем, он является хешируемым, что означает, что его можно использовать в качестве ключа в словарях и элемента множества.
Обратите внимание, что, поскольку frozenset не поддерживает изменения, некоторые методы, которые изменяют множество (например, add, remove, discard), не применимы к frozenset. Однако, вы можете выполнять операции, возвращающие новые frozenset, такие как объединение и пересечение.
#для_начинающихvisited для отслеживания посещенных вершин и очередь queue для управления порядком обхода.
2. Стартовая вершина добавляется в очередь и отмечается как посещенная.
3. Пока очередь не пуста, извлекается вершина из начала очереди (queue.popleft()).
4. Выводится значение текущей вершины и добавляются в очередь все её смежные вершины, которые еще не были посещены.
5. Шаги 3-4 повторяются до тех пор, пока очередь не опустеет.
Сложность:
Временная сложность: O(V + E), где V — количество вершин, E — количество ребер в графе.
Пространственная сложность: O(V), так как используется множество для отслеживания посещенных вершин.
Применение:
BFS применяется в задачах поиска кратчайших путей в невзвешенных графах.
Он также используется в задачах, связанных с обходом графов, например, в нахождении компонент связности.__getitem__ является частью протокола индексации, который позволяет объекту быть индексируемым, как это делается, например, для списков или словарей. Этот метод вызывается при использовании квадратных скобок [] для доступа к элементам объекта.
Этот метод также используется при работе с срезами. Если вы хотите, чтобы ваш объект поддерживал срезы, вы также можете реализовать метод __getitem__ с тремя аргументами: self, start, stop.
#для_начинающихmemoryview() в Python предоставляет объект для доступа к внутреннему представлению данных в виде буфера без копирования. Этот объект позволяет вам просматривать байты объекта, не копируя их, а также выполнять различные операции на уровне байтов.
memoryview() также может использоваться для работы с массивами и другими объектами, поддерживающими буферный интерфейс в Python.
Этот инструмент особенно полезен, когда вам нужно работать с большим объемом данных, и вы хотите избежать копирования данных, что может быть затратным с точки зрения времени и ресурсов.
#для_начинающихstring.punctuation для определения знаков препинания и str.translate() для удаления их из строки. Затем мы приводим всю строку к нижнему регистру и разбиваем ее на слова, считая количество уникальных слов с использованием множества (set).
Оптимизации (вторая картинка):
Мы могли бы использовать регулярные выражения для более точного удаления знаков препинания и разделения слов. Вместо создания промежуточного списка words, мы могли бы сразу подсчитывать уникальные слова при проходе по строке, что сэкономило бы память.pow() используется для вычисления степени числа. Вот как она работает:
result = pow(x, y, z)где: x — основание степени, y — показатель степени, z (необязательный параметр) — модуль, по которому производится вычисление. Если z указан, то pow(x, y, z) возвращает (x y) % z. Если z не указан, то возвращается x y. #для_начинающих
string.punctuation для определения знаков препинания и str.translate() для удаления их из строки. Затем мы приводим всю строку к нижнему регистру и разбиваем ее на слова, считая количество уникальных слов с использованием множества (set).
Оптимизации:
Мы могли бы использовать регулярные выражения для более точного удаления знаков препинания и разделения слов. Вместо создания промежуточного списка words, мы могли бы сразу подсчитывать уникальные слова при проходе по строке, что сэкономило бы память.some_function принимает список чисел input_list, проходится по каждому элементу в списке, проверяет, является ли элемент четным числом, и если да, то добавляет квадрат этого числа в новый список result. В конце функция возвращает этот новый список.
Оптимизация кода:
Мы можем использовать list comprehension для более компактной записи этой функции:
def optimized_function(input_list):
return [item ** 2 for item in input_list if item % 2 == 0]
Также, если вам необходимо, чтобы функция работала для любого итерируемого объекта, вы можете добавить проверку на четность элемента и заменить на использование генератора:
def general_function(iterable):
return (item ** 2 for item in iterable if item % 2 == 0)
Тестирование:
Теперь напишем тесты для проверки корректности функции. Мы можем использовать библиотеку unittest для этого (вторая картинка).