TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Pág. 44 de 85 · 1,014 posts
Скачиваем вебсайты целиком Максимально простой, но при этом мощный пакет pywebcopy поможет вам клонировать отдельные веб-страницы или даже целые сайты. Функция save_webpage скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат. А вот save_website дает возможность скачать целый вебсайт рекурсивно. Например, если сайт представляет из себя блог, то скрипт скачет все статьи, которые есть на сайте. Но здесь надо быть аккуратнее, подобная рекурсивная загрузка отправит много запросов к серверу и может сильно нагрузить его, если на сайте много страниц. #pywebcopy
Hashtags
Заглушка в коде В ходе исполнения оператора pass ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо. Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass. Или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе. #pass
Hashtags
ООП: композиция Композиция — это отношение, при котором объекты одного класса связаны с объектами другого. Такой способ организации взаимодействия между классами также называется ассоциацией. Как правило, в этом случае объект одного из классов (в примере выше это Salary) является полем другого (Employee). Сложного здесь, как вы видите, ничего нет. Ассоциированные объекты зачастую могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора. В таком случае необходимо использовать слабые ссылки из модуля weakref, о котором поговорим позже. #классы#ооп
Publicado 29 nov
ИИ в работе страховых компаний В «Ингоссрахе» рассказали, в каких конкретно рабочих процессах применяют нейросети на сегодняшний день. На основе machine learning строятся прогнозы убытков, наступления страховых случаев и мошеннических операций. Обучаемые риск-модели показывают, какие клиенты и насколько убыточны в зависимости от пола, возраста и приобретаемых продуктов страхования. Для автоматизации работы и для решения нестандартных задач применяются Computer Vision (CV), Optical Character Recognition (OCR) и Natural Language Processing (NLP). И ущерб от ДТП теперь рассчитывают нейросети по фотографиям с места происшествия. Второе направление, в котором работу без ИИ уже невозможно представить, это формирование персонифицированных предложений для клиентов. Методами CRM-моделирования оценивается лояльность клиентов, рассчитывается индивидуальный оффер и строится прогноз покупки страховых продуктов. Личные данные клиентов при этом охраняются всеми доступными способами: деперсонализация, хеширование, физическая защита серверов.
Находим опечатки в тексте Полезный пакет spellchecker позволяет находить опечатки в тексте и даже дает возможные варианты исправлений. Под капотом модуль использует алгоритм расстояния Левенштейна. А сам код основан на статье, написанной в блоге Питера Норвига. Короче, реализация интересная, советую поизучать. Но даже если не вникать в подробности, то пакет использовать крайне легко. Примеры использования класса SpellChecker и его методов correction и candidates показаны на картинке. Пакет поддерживает 6 языков, включая русский. Но за подробностями отправляю вас читать документацию. #spellchecker
Hashtags
Порядок разрешения методов В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод. Этот порядок можно получить при помощи атрибута __mro__. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value, Python будет искать сначала в классе A, далее в B, затем в Cи в самом конце в object. Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1. #классы
Hashtags
Хэширование Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш. Для хэширования значений есть встроенная функция hash(). Используется она в основном для сравнения значений разных объектов — сравнивать хэши легче и выгоднее. Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку. Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю. А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы. #hash
Hashtags
Удобная работа с файловыми путями В стандартной библиотеке есть максимально удобный пакет pathlib, позволяющий осуществлять различную работу с файловыми путями. Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией. Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке. Таким образом, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями. #pathlib
Hashtags
Операторы множеств Множество — это коллекция, где все элементы уникальны. То есть одно и то же значение не может повторяться дважды. Помимо обычных методов, у множеств реализована поддержка различных операторов: объединение, пересечение, симметрическая разность, обычная разность и некоторые другие. Примеры этих операторов можете посмотреть выше на картинке. Реализовано подобное поведение с помощью магических методов, про которые уже не раз говорили на канале. #множества
Hashtags
Временные файлы В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями. Функция TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект. Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера. Также другие процессы и приложения не смогут получить доступ к этому временному файлу. #tempfile
Hashtags
Отлавливаем ошибки с помощью assert Инструкция assert принимает логическое выражение и необязательное сообщение. Она используется для проверки типов, значений аргумента и вывода функции, а также для отладки, поскольку останавливает программу в случае ошибки. Если выполнить инструкцию assert с логическим выражением, результат которого равен True, ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError. Однако не нужно пытаться обработать исключение AssertionError блоком try-except. В таком случае assert теряет свой смысл. В примере мы проверили, является ли переданный аргумент числовым типом данных. Если не является, то будет вызвано исключение и выведено указанное сообщение. #исключения#assert
Hashtags
Not a Number В модуле math есть особый объект, который называется NaN (Not a Number). Эти объекты NaN не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников. Например можно создать подобный объект, просто передав строку 'nan' во float. Кстати говоря, это значит что вы можете использовать NaN в качестве ключа в словаре (хотя мы и не советуем это делать). #nan#tips