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 409 名订阅者,在 技术与应用 类别中位列第 4 610,并在 俄罗斯 地区排名第 22 813 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 28 409 名订阅者。
根据 02 九月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -269,过去 24 小时变化为 -17,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 6.20%。内容发布后 24 小时内通常能获得 N/A% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 1 760 次浏览,首日通常累积 0 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 12。
- 主题关注点: 内容集中在 learning, строка, модуль, собеседование, zip 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“№ 4974297878
Обучающий канал по Python
Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy
По всем вопросам @mascarov_valentin
Реклама на бирже - https://telega.in/c/Python_per_month”
凭借高频更新(最新数据采集于 03 九月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
28 409
订阅者
-1724 小时
-617 天
-26930 天
帖子存档
28 409
Что такое args?
args — это сокращение от «arguments» (аргументы). Этот термин обычно используется в контексте определения функций с переменным числом аргументов.
Когда вы определяете функцию с *args в списке аргументов, это означает, что функция может принимать произвольное количество позиционных аргументов. args представляет собой кортеж (tuple), содержащий все переданные позиционные аргументы.
#для_начинающих
28 409
__slots__
__slots__ — это специальный атрибут в Python, который может использоваться в классах для определения списка атрибутов (полей), которые разрешено создавать для экземпляров этого класса. Он используется для оптимизации использования памяти и ускорения доступа к атрибутам.
Обычно, когда вы создаете экземпляр класса, Python создает словарь для хранения всех атрибутов этого экземпляра. Это занимает дополнительную память и может вызвать небольшое замедление при доступе к атрибутам. А использование slots позволяет определить, какие атрибуты можно создавать для экземпляров класса, и Python будет использовать более компактное представление данных, что уменьшит расход памяти.
#для_продвинутых28 409
Контекстные менеджеры
Контекстные менеджеры (Context Managers) в Python представляют собой удобный способ для управления ресурсами и выполнения кода в определенных контекстах, таких как открытие и закрытие файлов, установка и освобождение блокировок, управление сетевыми соединениями и многие другие ситуации, требующие выполнения предварительных и завершающих операций.
Для создания своего собственного контекстного менеджера вам потребуется определить методы
__enter__() и __exit__() в вашем классе. Метод __enter__() выполняется при входе в контекст, а метод __exit__() выполняется при выходе из контекста.
#для_начинающих28 409
Codeby Academy открывает осенний набор на один из своих лучших курсов - «Python для Пентестера»
Старт: 4 сентября
Длительность: 3 месяца
На курсе будем изучать продвинутые техники использования Python, научимся писать прикладной софт, который используется пентестерами в их профессиональной деятельности. Максимум практики, чат с живым общением и поддержка преподавателей!
🐍После 3-месячного онлайн-курса «Python для пентестера» вы сможете:
➡️Эффективно использовать базы данных и сеть Интернет;
➡️Получать данные от сайтов в автоматическом режиме;
➡️Писать прикладные программы на Python.
🏆 Выдаём сертификат при успешной сдаче экзамена
А по промокоду OFFZONE2023 вы получите дополнительную скидку 10%
📌 Узнать подробнее о курсе
28 409
SciencePlots
SciencePlots - это библиотека, которая предоставляет стили для библиотеки Matplotlib, чтобы форматировать ваши графики для научных статей, презентаций и диссертаций.
Это может быть полезно для ученых, инженеров, студентов и любого, кто хочет создавать профессионально выглядящие графики в Python.
В этом примере мы устанавливаем стиль 'science' из библиотеки scienceplots. Затем мы создаем данные для графика и строим график. В конце мы отображаем график с помощью plt.show().28 409
Цикломатическая сложность
Цикломатическая сложность (Cyclomatic Complexity) — это метрика, используемая для оценки сложности кода на основе количества путей выполнения в программе. Эта метрика была предложена Томасом МакКейбом в 1976 году и обычно используется для определения того, насколько сложно будет тестирование и сопровождение данного кода.
Целью расчета цикломатической сложности является выявление потенциально сложных участков кода, которые могут быть трудными для понимания, тестирования и поддержки. Более высокая цифра цикломатической сложности обычно указывает на большую сложность кода.
#для_продвинутых
28 409
dict comprehension
dict comprehension — это способ создания нового словаря путем применения выражения к каждому элементу другой последовательности, такой как список, кортеж или другой словарь. Это похоже на генератор списков, но результатом является словарь вместо списка.
#для_начинающих28 409
Паттерн проектирования «Фасад»
Паттерн проектирования «Фасад» (Facade) используется для предоставления унифицированного интерфейса к группе интерфейсов подсистемы. Он позволяет скрыть сложность и детали взаимодействия между различными компонентами системы, предоставляя клиенту более простой и удобный способ взаимодействия.
#для_продвинутых
28 409
__init__
__init__ является методом, который используется для инициализации объектов при создании экземпляров классов. Этот метод называется «конструктором» класса и выполняется автоматически при создании нового объекта данного класса.
Когда вы создаете новый объект путем вызова конструктора класса, передавая ему аргументы, эти аргументы могут быть использованы для установки начальных значений атрибутов объекта. Внутри метода __init__ вы можете определить, какие атрибуты должны быть созданы для объекта и как им присвоены начальные значения.
#для_начинающих28 409
Что такое _slots_?
__slots__ — это особый атрибут класса, который позволяет определить ограниченное множество атрибутов (полей) для экземпляров данного класса. Использование __slots__ может существенно снизить расход памяти для объектов класса и ускорить доступ к атрибутам, но оно также вносит некоторые ограничения и ограничения.
Обычно вы можете добавлять атрибуты к объектам класса динамически, потому что они хранятся в словаре. Однако это может вызвать избыточные затраты на память и небольшое замедление доступа к атрибутам из-за поиска по словарю. Атрибуты, определенные через __slots__, фактически резервируют место в памяти напрямую в экземпляре класса, что уменьшает объем памяти, требуемый для хранения объектов.28 409
Фабричный метод
Фабричный метод (Factory Method) — это паттерн проектирования, который позволяет создавать объекты определенного типа через интерфейс или базовый класс, но делегирует фактическое создание конкретных объектов подклассам. Это способ позволяет легко добавлять новые типы объектов без изменения существующего кода.
Пример на картинке показывает основы паттерна «Фабричный метод» в Python. В реальных ситуациях можно создавать более сложные иерархии продуктов и создателей, чтобы обеспечить более гибкую и расширяемую структуру кода.
28 409
Дескрипторы
Дескрипторы — это механизм, который позволяет контролировать доступ к атрибутам классов. Они предоставляют способ определения специальных методов для доступа, присваивания и удаления атрибутов. Дескрипторы часто используются для реализации логики, связанной с доступом к данным, внутри классов.
Для создания дескриптора нужно определить класс, который реализует хотя бы один из трех вышеуказанных методов. Затем экземпляры этого класса могут быть присвоены атрибутам других классов.
28 409
Как работает thread locals?
Thread-local storage обеспечивает механизм для сохранения данных, которые будут доступны только в рамках определенного потока выполнения. Это полезно, когда вы хотите иметь раздельные данные для каждого потока, но не хотите делить их между разными потоками.
Вы можете использовать класс threading.local(), чтобы создать объект, который будет представлять thread-local storage. В этом объекте вы можете хранить любые данные, и они будут видимы только для текущего потока. Каждый поток будет иметь свою собственную копию объекта threading.local().
28 409
Метакласс
Метакласс (metaclass) в Python — это класс, который определяет поведение других классов, которые являются его экземплярами. В некотором смысле метакласс можно рассматривать как «класс для классов». Он задает правила и ограничения для создания и работы классов.
В Python метаклассы используются для контроля процесса создания классов, изменения их атрибутов и методов, а также для внесения различных модификаций в поведение классов и их экземпляров. Они предоставляют мощный инструмент для метапрограммирования, то есть программирования на уровне создания программного кода.
28 409
introspection
introspection — это способность программы анализировать свой собственный код и структуру во время выполнения. Это позволяет получать информацию о объектах, модулях, функциях, классах и других аспектах программы без необходимости заранее знать о них статически.
Например, в Python вы можете использовать функции и атрибуты, такие как
dir(), type(), getattr(), hasattr(), locals(), globals() и другие, чтобы получить информацию о переменных, объектах и их атрибутах. Это может быть полезно при отладке, создании обобщенных функций или динамической загрузке модулей.28 409
exceptions
В Python и многих других языках программирования,
exceptions (исключения) — это механизм, который позволяет обрабатывать ошибки и нестандартные ситуации во время выполнения программы. Когда возникает ошибка, Python генерирует исключение. Если исключение не обрабатывается, программа может завершиться с ошибкой.
В данном примере кода, операция x = 10 / 0 вызовет исключение ZeroDivisionError, так как нельзя делить на ноль. Однако благодаря конструкции try и except, программа не завершится с ошибкой. Вместо этого будет выведено сообщение «Произошла ошибка деления на ноль!».28 409
❗️Как развиваться Python-разработчику?
Наращивать объем знаний и навыков. За этим приходите на вебинар, приуроченный к старту онлайн-курса «Python Developer. Professional» в OTUS.
✅ 15 августа — «Code review»
Обсудим основы разработки API с помощью фреймворка FastAPI, рассмотрим пример небольшого приложения и осветим особенности развертывания эксплуатации.
🧑💻 Спикером выступит Станислав Ступников, руководитель разработки в VK. Эксперт с 10+ лет опыта промышленной разработки.
💪 Погрузим вас в современную «промышленную» разработку на Python. Главный фокус курса на основных Software Engineering компетенциях Python-разработчика и формировании прагматичного подхода к решению задач.
👉 ПРОЙТИ ТЕСТ для регистрации на открытый урок
https://otus.pw/LZMQ/
Нативная интеграция. Информация о продукте www.otus.ru28 409
Бинарный поиск
Бинарный поиск — это эффективный алгоритм поиска элемента в отсортированном массиве. Он работает путем разделения массива пополам и сравнивает искомый элемент с элементом в середине массива. В зависимости от результата сравнения, половина массива, в которой элемент точно не может находиться, исключается из дальнейшего поиска. Этот процесс повторяется, пока не будет найден элемент или пока остается только один элемент в массиве.
В этом примере функция
binary_search принимает отсортированный массив arr и искомый элемент target. Она ищет элемент в массиве и возвращает его индекс, если он найден, и -1, если элемент отсутствует. Каждая итерация сужает диапазон поиска путем сравнения среднего элемента с искомым элементом и сдвига границ поиска в соответствии с результатом сравнения.28 409
Задача
У вас есть девять цифр: 1, 2, …, 9. Именно в таком порядке. Вы можете вставлять между ними знаки «+», «-» или ничего. У вас будут получаться выражения вида 123+45-6+7+89. Найдите все из них, которые равны 100.
Мне кажется, в таком виде его проще всего и писать и читать и тестировать. Тут у меня три функции: all_combinations — итератор, который выдает все числа для операций (в терминах задачи: вставляет пустые места); all_signs — выдаёт все возможные сочетания знаков + и - заданной длинны (для единообразия, это тоже итератор с рекурсией); perform_operations — выполняет операции.
Тут, конечно, просится решение, избавленное от if-ов и кодирования операций с помощью символов. Но это решение будет более громоздким, о нём можно рассказать, но и писать, и читать его дольше.
