Python Education
关闭频道
Обучаем Python как маленьких, так и взрослых Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: telega.in/c/python_educa РКН: clck.ru/3MnbNV
显示更多8 736
订阅者
-324 小时
-337 天
-8030 天
帖子存档
8 736
Станьте Python-разработчиком на Хекслете
✔ Пройдите бесплатные вводные курсы, чтобы познакомиться с профессией.
✔ Если понравится — присоединяйтесь к обучению в группе с наставником
✔ Развивайте нетворкинг в 26-тысячном сообществе айтишников
✔ Выполняйте проекты, участвуйте в Open Source, готовьтесь к трудоустройству
P.S. Вводные курсы профессии доступны бесплатно сразу после регистрации. Оцените формат и решите, стоит ли продолжать!
8 736
Метод rindex
Метод занимается поиском подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError.
Метод возвращает наибольший индекс совпадения символа/подстроки.
8 736
Метод repr() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод str() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
8 736
Выполнение функций по заданному расписанию
Часто нужно писать код, который должен выполниться в определенный промежуток времени, по расписанию. Для решения такой задачи есть несколько решений, одно из них — библиотека aiocron.
Она позволяет описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция hi будет выполняться каждые 30 минут.
8 736
Онлайн-профессии, если вам за 30: как стать аналитиком данных?
Главный урок последних лет — строить карьеру на удаленке.🧐
Именно онлайн-профессии помогают ❤️ в самых сложных ситуациях — позволяют работать и зарабатывать удаленно из любой точки мира 🛩
Одна из самых престижных и быстрорастущих по числу вакансий онлайн-профессия — аналитик данных. Имея более простой вход в профессию (по сложности и сроку обучения), зарплата аналитиков на начальном и последующих этапах постоянно соперничает с доходом программистов 🏆
Чем занимается аналитик данных и как им стать вы можете узнать в 18:00 по МСК на бесплатном вебинаре 🎧 в онлайн-школе Арнион, записывайтесь 🎯 https://t.me/arnion_analytics_18_bot?start=NzQvMC8w
❗Вебинар проведет Константин Шереметьев, во время эфира вы сможете задать свои вопросы. Кликайте, чтобы получить ссылку на эфир!
8 736
Ищем ошибки с помощью assert
Инструкция assert принимает логическое выражение и необязательное сообщение. Используется для проверки типов, значений аргумента и вывода функции, а ещё для отладки, поскольку останавливает программу в случае ошибки.
Если выполнить инструкцию assert с логическим выражением, результат которого равен True, то ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError.
Однако не нужно пытаться обработать исключение AssertionError блоком try-except, так как assert тогда теряет свой смысл.
В примере на картинке проверяется, является ли переданный аргумент числовым типом данных. Если не является, то будет вызвано исключение и выведено указанное сообщение.
8 736
Библиотека subprocess
И в заключение покажем интересную и в некотором роде полезную программу, которая показывает все wi-fi сети.
Мы еще не использовали check_output, он выполняет команду и возвращает ее вывод. Похожее мы уже проделывали в прошлом посте.
Не забывайте, что иногда требуется остановить или даже "убить" процесс. Это делается методами класса Popen, а именно terminate() и kill().
С данным модулем можно выполнить очень много полезных действий, которые недоступны интерпретатору Python при других путях решения.
8 736
Библиотека Flask
Как вы уже догадались контент можно вставлять переменными. Достаточно воспользоваться форматированием строк (
f"a + 1={a + 1}"). Но тогда код получится слишком огромным. Вы можете составить шаблон прямо в html коде и сохранить его как отдельную страницу. А затем при выдаче он будет просто выполнен. К примеру в файле 'index.html' будет лежать такой код: '<h1>{{name}}</h1><p>{{content}</p>'
В flask шаблонах используем {{}} вместо {} для вставки переменных. Доступны циклы и условия, но они добавляются по-другому. Об этом позже. И для выполнения года надо рендерить страницу.8 736
Библиотека subprocess
Данная библиотека как ни странно, помогает работать с процессами. С ней можно, к примеру, вызвать какое-то приложение. Пусть это будет командная строка.
Кроме этого, можно проверить ответ от какого-то сайта. Делается это через расчет ping.
Про еще большее количество возможностей расскажем в следующем посте.
8 736
NumPy: Разделение массивов
Разделение — это операция, обратная объединению. Объединение сливает несколько массивов в один, а разделение разбивает один массив на несколько. С помощью array split() ты можешь разделить массив. Ты передаешь массив, который хочешь разбить, и количество разбиений.
8 736
Работа с ip адресами
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль ipaddress.
Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
8 736
Метод файла file.readlines() читает файловый объект file построчно, пока не достигнет конца файла EOF и возвращает список, содержащий строки или байтовые объекты файла в зависимости от режима, в котором открыт файл функцией open(). Конечный символ новой строки n сохраняется в строке.
Если присутствует необязательный аргумент sizehint, то читаются целые строки, составляющие приблизительно sizehint байт (округляется до внутреннего размера буфера).
Пустая строка возвращается только по достижении конца файла, т. е. EOF встречается немедленно.
8 736
Упрощение создания операторов сравнения
Декоратор functools total ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
8 736
wxPython: Контекстное меню и панель инструментов
Меню группируют все команды, которые ты можешь использовать в приложении. Панели инструментов обеспечивают быстрый доступ к наиболее часто используемым командам.
8 736
Биномиальное распределение
Биномиальное распределение — это дискретное распределение. Оно описывает результат бинарных сценариев. К примеру, подброс монетки. Имеется три параметра: n - количество испытаний; p - вероятность появления каждого испытания (например, при подбрасывании монеты по 0,5); size - форма возвращаемого массива.
8 736
Кэшированные атрибуты
Во встроенном пакете functools присутствует декоратор @cached_property, позволяющий кэшировать результат метода и загнать его в атрибут.
Таким образом при первом обращении к атрибуту производятся вычисления в методе, а при дальнейших берется уже кэшированное значение.
Подобное кэширование полезно в случаях, когда в методе производятся вычисления, которые нагружают систему и занимают много времени.
8 736
Паттерн проектирования Singleton
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод new вызывается для создания экземпляра класса перед вызовом init. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).
В примере мы проверяем, есть ли значение у атрибута instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если экземпляр уже создан, то просто его возвращаем.
То есть при вызове конструктора класса Singleton будет возвращаться один и тот же объект из памяти
8 736
TypeGuard
TypeGuard позволяет писать любое выражение и сообщать твоему средству проверки типов, что оно их сужает. Функция сужения типа — это функция, которая принимает хотя бы один аргумент и возвращает bool. Вместо пометки возвращаемого типа как bool используется TypeGuard[T], где True означает, что первый аргумент имеет тип T, а False — нет.
8 736
Узнаем кодировку текста
Думаю, у всех были ситуации, когда вы открыли файл или получили ответ от сервера, а внутри оказывался набор странных символов в непонятной кодировке.
Пакет chardet как раз был создан для работы с кодировкам. Его метод detect выдает предполагаемую кодировку с точностью от 0 до 1.
В примере на картинке мы получили ответ по запросу к серверу, взяли его содержимое и проверили кодировку через этот метод.
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
