Python Learning
前往频道在 Telegram
№ 4974297878 Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/Python_per_month
显示更多📈 Telegram 频道 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),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
28 437
订阅者
-1124 小时
-537 天
-24930 天
帖子存档
28 437
Метод math.perm()
Метод math.perm() в Python возвращает количество способов выбрать k элементов из n элементов с порядком и без повторения.
Синтаксис:
math.perm(n, k)Где:
n: Количество элементов из которых выбираются k элементов.
k: Количество элементов, которые выбираются.
В первом примере метод возвращает количество способов выбрать 3 элемента из 5 элементов. В результате получается 60 способов.
Во втором примере метод возвращает количество способов выбрать 5 элементов из 10 элементов. В результате получается 252 способа.
#для_начинающих28 437
Функция compress
Функция
compress из itertools используется для фильтрации элементов входной последовательности на основе соответствующих элементов булевой последовательности.
Код с картинки создает новый список, включающий только элементы data, для которых соответствующее значение в selectors является True. В данном случае результат будет [1, 3, 5].
#для_начинающих28 437
Начните изучение архитектуры ПО с бесплатного открытого урока «Модели взаимодействия или модели хранения данных» от OTUS.
На вебинаре:
- рассмотрим различные типы хранилищ: реляционные базы данных, NoSQL-базы и хранилища файлов;
- узнаем, как выбрать наиболее подходящий тип хранилища для различных сценариев и требований;
- изучим популярные модели CQRS и Event Sourcing.
Занятие пройдёт 20 декабря в 20:00 мск и будет приурочено к старту курса «Software Architect». После урока вы сможете продолжить обучение в рассрочку по специальной цене.
Регистрируйтесь бесплатно прямо сейчас и ставьте событие в календарь, чтобы ничего не пропустить: https://otus.pw/vcnH/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru28 437
Пишем приложение на Python для подготовки к собеседованиям по Python
На конец 2023 года язык программирования Python является самым популярным по индексу TIOBE.
Смотреть статью
28 437
Метод swapcase()
Метод
swapcase() в Python является встроенным методом строк (str), который создает новую строку, меняя регистр каждой буквы в исходной строке. Если буква была в верхнем регистре, она будет преобразована в нижний регистр, и наоборот.
#для_начинающих28 437
#Вопросы_с_собеседования
Реализуйте алгоритм сортировки слиянием (Merge Sort) на Python. Напишите код и объясните, как работает этот алгоритм. Расскажите о его сложности и возможных оптимизациях.
Объяснение:
Алгоритм сортировки слиянием (Merge Sort) использует стратегию «разделяй и властвуй». Он состоит из двух основных шагов:
Разделение (Divide): Массив разделяется на две равные (при четном числе элементов) или почти равные (при нечетном) части. Этот процесс рекурсивно выполняется для каждой из подпоследовательностей.
Слияние (Merge): Отсортированные подпоследовательности сливаются обратно в один отсортированный массив.
Сложность:
Временная сложность: O(n log n) в худшем, лучшем и среднем случаях.
Пространственная сложность: O(n).
Оптимизации:
— При реализации можно использовать вставочную сортировку для маленьких подмассивов, так как у нее меньшая константа в асимптотике.
— Если массив уже отсортирован, можно добавить проверку и пропустить шаг сортировки.
— Вместо копирования подмассивов при каждом рекурсивном вызове можно использовать вспомогательный массив для слияния, что уменьшит использование памяти.
28 437
Ruff
Ruff — это новый, быстроразвивающийся линтер Python кода, призванный заменить flake8 и isort.
Основным преимуществом Ruff является его скорость. Ruff в 10-100 раз быстрее аналогов (Линтер написан на Rust). В сравнении с flake8, автор заявляет о практически полном совпадении с набором правил инструмента и нативной реализацией популярных плагинов (flake8-bugbear и т.д.). Также Ruff совместим с Black «из коробки».
Ruff может форматировать код. Например, он автоматически удаляет неиспользуемые импорты. Что касается сортировки и группировки строк импорта, то она практически идентична isort.
Документация лежит здесь.
#для_продвинутых
28 437
frozenset
frozenset представляет собой неизменяемое множество. Основное отличие между set и frozenset заключается в том, что set является изменяемым типом данных, тогда как frozenset не может быть изменен после создания.
Вот несколько ключевых особенностей frozenset:
Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в frozenset после его создания.
Хешируемость: Поскольку frozenset неизменяем, он является хешируемым, что означает, что его можно использовать в качестве ключа в словарях и элемента множества.
Обратите внимание, что, поскольку frozenset не поддерживает изменения, некоторые методы, которые изменяют множество (например, add, remove, discard), не применимы к frozenset. Однако, вы можете выполнять операции, возвращающие новые frozenset, такие как объединение и пересечение.
#для_начинающих28 437
#Вопросы_с_собеседования
Реализуйте алгоритм поиска в ширину (BFS - Breadth-First Search) для графа на Python. Напишите код и объясните, как работает этот алгоритм. Обсудите его сложность и применение.
Объяснение:
Алгоритм поиска в ширину (BFS) используется для обхода или поиска в графе. Он начинает с выбора стартовой вершины и пошагово распространяется по всем смежным вершинам.
Шаги алгоритма:
1. Создается пустое множество
visited для отслеживания посещенных вершин и очередь queue для управления порядком обхода.
2. Стартовая вершина добавляется в очередь и отмечается как посещенная.
3. Пока очередь не пуста, извлекается вершина из начала очереди (queue.popleft()).
4. Выводится значение текущей вершины и добавляются в очередь все её смежные вершины, которые еще не были посещены.
5. Шаги 3-4 повторяются до тех пор, пока очередь не опустеет.
Сложность:
Временная сложность: O(V + E), где V — количество вершин, E — количество ребер в графе.
Пространственная сложность: O(V), так как используется множество для отслеживания посещенных вершин.
Применение:
BFS применяется в задачах поиска кратчайших путей в невзвешенных графах.
Он также используется в задачах, связанных с обходом графов, например, в нахождении компонент связности.28 437
🔥 Ключевой навык востребованных дата-инженеров
Освойте его, чтобы вырасти в доходе всего за 4 месяца на онлайн-курсе «Spark Developer» от OTUS.
💻 После курса вы сможете:
— Разрабатывать приложения Spark
— Разрабатывать модели ML на Spark и выводить их в Production
— Запускать Spark в Hadoop и Kubernetes
— Писать тесты для Spark-приложений
— Использовать Spark для обработки табличных, потоковых, гео-данных и графов
— Настраивать мониторинг Spark-приложений
Вы можете заранее бесплатно получить полную программу обучения, чтобы убедиться, что она вам подходит. Также курс доступен для приобретения в рассрочку.
⏩ Оставьте заявку прямо сейчас и получите 3 полезных урока от экспертов курса в подарок: https://clck.ru/36yaHH
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
28 437
Метод __getitem__
Метод
__getitem__ является частью протокола индексации, который позволяет объекту быть индексируемым, как это делается, например, для списков или словарей. Этот метод вызывается при использовании квадратных скобок [] для доступа к элементам объекта.
Этот метод также используется при работе с срезами. Если вы хотите, чтобы ваш объект поддерживал срезы, вы также можете реализовать метод __getitem__ с тремя аргументами: self, start, stop.
#для_начинающих28 437
memoryview()
memoryview() в Python предоставляет объект для доступа к внутреннему представлению данных в виде буфера без копирования. Этот объект позволяет вам просматривать байты объекта, не копируя их, а также выполнять различные операции на уровне байтов.
memoryview() также может использоваться для работы с массивами и другими объектами, поддерживающими буферный интерфейс в Python.
Этот инструмент особенно полезен, когда вам нужно работать с большим объемом данных, и вы хотите избежать копирования данных, что может быть затратным с точки зрения времени и ресурсов.
#для_начинающих28 437
#Вопросы_с_собеседования
Напишите функцию, которая принимает на вход строку и возвращает количество уникальных слов в этой строке. Считайте, что слова разделяются пробелами, знаками препинания должны быть удалены. Напишите код и расскажите, как вы обрабатываете знаки препинания. Какие дополнительные оптимизации можно внести?
Объяснение:
В этом коде (первая картинка) мы используем
string.punctuation для определения знаков препинания и str.translate() для удаления их из строки. Затем мы приводим всю строку к нижнему регистру и разбиваем ее на слова, считая количество уникальных слов с использованием множества (set).
Оптимизации (вторая картинка):
Мы могли бы использовать регулярные выражения для более точного удаления знаков препинания и разделения слов. Вместо создания промежуточного списка words, мы могли бы сразу подсчитывать уникальные слова при проходе по строке, что сэкономило бы память.28 437
pow()
В Python функция
pow() используется для вычисления степени числа. Вот как она работает:
result = pow(x, y, z)где: x — основание степени, y — показатель степени, z (необязательный параметр) — модуль, по которому производится вычисление. Если z указан, то pow(x, y, z) возвращает (x y) % z. Если z не указан, то возвращается x y. #для_начинающих
28 437
Не трогайте, это на Новый год!
Профессия «Python-разработчик» 🐍
🎁 Скидка до 30 000 рублей и кэшбек на карту до 25 000 рублей при успешном прохождении обучения!
Освойте один из самых популярных языков для бэкенда, научитесь создавать полноценные сайты и веб-приложения и реализовать внутреннюю логику работы программ на фреймворке Django.
Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.
📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия и стоит ли продолжать!
Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:LjN8K3P5Q
28 437
#Вопросы_с_собеседования
Напишите функцию, которая принимает на вход список словарей, представляющих собой записи о студентах. Каждый словарь содержит ключи 'name', 'age' и 'grade'. Функция должна возвращать средний возраст студентов и среднюю оценку. Напишите код и объясните, как бы вы обработали случаи, когда в словарях отсутствуют ключи или значения не являются числами.
Объяснение:
В этой функции мы проходим по списку словарей, проверяем наличие ключей 'name', 'age' и 'grade' и их типы. Если данные валидны, добавляем их к общей сумме, чтобы затем посчитать средние значения.
28 437
#Вопросы_с_собеседования
Напишите функцию, которая принимает на вход строку и возвращает количество уникальных слов в этой строке. Считайте, что слова разделяются пробелами, знаками препинания должны быть удалены. Напишите код и расскажите, как вы обрабатываете знаки препинания. Какие дополнительные оптимизации можно внести?
Объяснение:
В этом коде мы используем
string.punctuation для определения знаков препинания и str.translate() для удаления их из строки. Затем мы приводим всю строку к нижнему регистру и разбиваем ее на слова, считая количество уникальных слов с использованием множества (set).
Оптимизации:
Мы могли бы использовать регулярные выражения для более точного удаления знаков препинания и разделения слов. Вместо создания промежуточного списка words, мы могли бы сразу подсчитывать уникальные слова при проходе по строке, что сэкономило бы память.28 437
#Вопросы_с_собеседования
Объясните, что делает данная функция (первая картинка), оптимизируйте ее, и напишите тесты для проверки ее корректности.
Что делает функция:
Данная функция
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 для этого (вторая картинка).