Python Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Хакатон по разработке инклюзивных навыков Алисы
К участию приглашаются студенты бакалавриата, специалитета и магистратуры московских вузов любых форм обучения и специальностей. Для программистов основные требования — владеть языками Python и Kotlin или уметь работать в веб-фреймворке Node.js.
На хакатоне участники разработают сценарии для виртуального ассистента, которые в дальнейшем будут помогать слабовидящим и незрячим, людям с нарушениями опорно-двигательного аппарата, а также детям с особенностями развития.
Заявки принимаются до 16 июня включительно. Работа над кейсами продлится 4 недели, финал пройдёт в середине июля в Москве. Чтобы зарегистрироваться — заполняйте форму и не забудьте написать мотивационное письмо.
Обрабатываем номера телефонов
Пакет phonenumbers
основан на библиотеке libphonenumber от Google, которая позволяет форматировать, парсить и проверять номера телефонов.
Основным классом, который представляет номер, является PhoneNumber
. Объект можно создать, вызвав метод parse()
и передав в аргументы номер телефона в виде строки. Вторым аргументом также можно указать страну.
В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования.
#python #phonenumbers
GigaConf 2024: Искусственный интеллект в фокусе разработки программного обеспечения
На предстоящей технологической конференции GigaConf, которая пройдет в Москве, значительное внимание будет уделено роли искусственного интеллекта в разработке программного обеспечения. Об этом стало известно из интервью старшего вице-президента и руководителя блока «Технологическое развитие» Сбербанка Андрея Белевцева, опубликованного в период ПМЭФ в газете «Ведомости».
Андрей Белевцев подчеркнул, что последние достижения в области ИИ становятся возможными благодаря усилиям исследовательских групп. Он также отметил растущий вклад российских ученых в мировую науку, приведя пример более чем 90 научных публикаций от сотрудников Сбера и их партнеров за прошлый год. «Сбер» планирует продолжать поддержку научных исследований, и данная тема окажется в центре внимания на GigaConf.
Конференция состоится 27 июня в креативном пространстве «Дизайн-завод» в Москве. Более 50 спикеров из IT-индустрии обсудят тренды в разработке программного обеспечения, с особым акцентом на применении AI и Open Source-технологий. Участники смогут увидеть, как новейшие инструменты влияют на усовершенствование процессов разработки, на реальных примерах и кейсах.
Для подробной информации о мероприятии и регистрации посетите официальный сайт конференции GigaConf.
Считаем ссылки на объект
В Python
практически никогда не нужно волноваться об управлении памятью, потому что все это делается автоматически.
Счетчик ссылок — это то, что помогает при проверке того, следует ли выполнять сборку мусора или нет. Сборщик мусора удаляет объект из памяти в случае, если на него ничего не ссылается.
Если на объект ссылается другой объект, то он имеет ненулевое значение ссылок и не может быть собран как мусор (если, конечно, вы не удалите вручную).
В примере выше продемонстрирован простой способ, как можно посмотреть количество ссылок у объекта.
#python #ctypes
Слайсы
Слайс (или срез, англ. slice) — это способ выбрать часть последовательности (например, строки, списка, кортежа) путем указания начального и конечного индексов, а также шага. Слайсы используются для извлечения подстрок, подсписков или подкортежей из исходной последовательности.
Слайсы полезны для работы с большими последовательностями данных и предоставляют удобный способ извлечения нужных элементов из них.
#python #slice
Метод isspace()
Метод isspace()
— это строковый метод, который используется для проверки, состоит ли строка только из пробельных символов (пробелов, символов табуляции, символов новой строки и других символов, которые считаются «пробельными» в контексте языка Python).
Примечание: isspace()
не изменяет исходную строку, а просто возвращает булево значение в зависимости от условия.
#python
Больше о бэкенде и не только — на оплачиваемой стажировке для школьников от VK
Программа, рассчитанная на два месяца, поможет школьникам старше 14 лет узнать на практике о реальных задачах в одном из пяти направлений — машинное обучение, фронтенд- и бэкенд-разработка, ручное и автоматизированное тестирование. Здесь же они смогут развить софты, освоить инструменты планирования и навыки деловой коммуникации, а также получат консультации по карьерному развитию от экспертов компании.
Чтобы попасть на стажировку, нужно до 13 июня подать заявку и пройти отбор.
Регистрация
Центральный университет совместно с Авито запускает свою первую стипендиальную программу
Программу по выплатам стипендий в Центральном Университете Авито открывает в рамках собственного проекта по системной подготовке кадров в области ИИ и в IT-отрасли в целом. Стипендияпредоставляется студентам, изучающим специализации "Искусственный интеллект", "Разработка" и "Бизнес и Аналитика" на уровне бакалавриата.
Принять участие в отборе на стипендию смогут будущие первокурсники университета, успешно справившиеся с кейс-заданиями. Программа рассчитана на 2 года с возможностью продления. Общий фонд стипендии составит не менее 5 миллионов рублей, и для ее сохранения со второго по четвертый семестры студентам необходима хорошая успеваемость.
Конкурс на получение стипендии начнется в июле, а результаты будут объявлены в августе. Дополнительную информацию и условия участия можно найти на официальном сайте Центрального Университета.
PyJWT: Работаем с JSON Web Tokens в PythonPyJWT
— это библиотека Python
, предназначенная для кодирования, декодирования и проверки подлинности JSON Web Tokens (JWT)
.JWT
— это открытый стандарт (RFC 7519), который определяет компактный и независимый способ безопасной передачи информации между сторонами в виде JSON-объекта. Эта информация может быть проверена и доверена, так как она подписана цифровой подписью.
В этом примере мы создаём JWT, который содержит идентификатор пользователя и срок его действия. Затем мы декодируем и проверяем токен, чтобы убедиться, что он ещё действителен и подлинен.
#python #pyjwt
Data Scientist (Pricing) в Lamoda Tech
Мы в поиске Data Scientist в команду Pricing.
Чем предстоит заниматься:
— Развивать систему динамического ценообразования;
— Заниматься построением системы конкурентного ценообразования (матчинг), включающей в себя как модели DL (NLP/CV), так и классический ML;
— Использовать модели эластичности в других бизнес продуктах: ранжировании, пополнении стока, промо (купоны) и персональном ценообразовании;
— Предлагать новые инициативы, связанные с развитием data-driven подхода в отделе коммерции.
Стэк технологий: Big data (Hadoop, PySpark, Hive), Python, Catboost, Airflow, Docker, SQL, PyTorch.
Почему у нас классно:
— Хорошо выстроенные процессы: квартальное планирование по методологии OKR, двухнедельные спринты, регулярные стендапы и проектные встречи для синхронизации;
— Сильная команда middle и senior специалистов, развитое DS-сообщество, где есть возможность обмениваться знаниями на внутренних митапах;
— У нас представлен полный жизненный цикл разработки data-driven продуктов с применением ML — от идеи и генерации гипотез до запуска АБ тестов. В части разработки онлайн-сервисов и деплоя моделей нам помогает команда инженеров.
Мы ожидаем:
— Опыт в области анализа данных и машинного обучения (от 2 лет);
— Опыт работы с SQL, Hadoop, Hive, Spark;
— Владение Python, Linux, методами работы с большими данными;
— Опыт работы как минимум с 2 ML библиотеками: Scikit-learn, CatBoost/XGBoost, PyTorch, Spark ML;
— Знания теории вероятностей и математической статистики;
— Знания в области машинного обучения, прогнозного моделирования и методов статистического анализа;
— Знание алгоритмов и структур данных;
— Высшее образование в области прикладной математики, информационных технологий, информатики и т.п;
• Английский язык на уровне технического чтения.
Как мы работаем:
— Пишем на Python 3.6+ и PySpark 3.0;
— Для ресерча доступны два сервера (80 cores, 650Gb RAM), на которых развернут JupyrerHub и есть доступ к Hadoop-кластеру;
— Код с логикой ML-пайплайнов упаковываем в Docker и выкатываем, используя CI/CD-инструменты с запуском code style проверок и тестов;
— Используем Airflow для управления ML-пайплайнами и запуском их по расписанию;
— В командах есть культура code review как для изменений по части продакшен-пайплайнов, так и для ресерч-задач;
— Регулярно проводим командные брейнштормы с целью генерации новых идей по развитию наших data-driven продуктов;
— В компании внедрена культура принятия решений на основании данных и все изменения тестируем через АБ-эксперименты.
Откликнуться: https://budu.jobs/vacancy/b26cd0da-148a-431f-a0df-d24cafb78907?vlid=f53038bd-4efd-47d6-8db1-7f01081528ca
«Норникель» и «Ростелеком» заключают партнерство для укрепления киберустойчивости горно-металлургической отрасли
⚡Президенты компаний подписывают соглашение о партнерстве в сфере информационной безопасности на международном форуме «Цифровая индустрия промышленной России — 2024».
📌В последние годы количество хакерских атак в промышленности растет. В 2023 году на эту отрасль пришлось 7% киберпреступлений. Ущерб от этого огромен, так как, например, горно-металлургической отрасль занимает одно из ключевых мест в экономике страны. Новое партнерство предполагает совместную работу для создания и внедрения средств защиты ИТ-инфраструктуры.
🖥Специалисты «Норникеля» и «Ростелеком» будут совместно разрабатывать решения для защиты от утечек информации, проверки безопасности ПО и ограничения доступа к вредоносным ресурсам. Среди других направлений — упрощение обмена информацией о работах в области информационной безопасности и разработка предложений по созданию отраслевого стандарта.
Владимир Потанин, президент «Норникеля»:
«Злоумышленники все чаще проводят атаки на объекты критической цифровой инфраструктуры. И хотя “Норникель” уделяет большое внимание построению и развитию системы информационной безопасности, мы во многом зависим от рынка. Считаю, что это комплексная проблема, и ее не решить усилиями отдельной компании. Так как “Ростелеком” — один из лидеров рынка, наше сотрудничество поможет выработать практики, стандарты и решения для развития российской сферы информбезопасности в целом».
«Сотрудничество с одной из крупнейших горно-металлургических компаний в стране поможет консолидировать ресурсы для обеспечения информационной безопасности в промышленности. Интерес злоумышленников к объектам критической инфраструктуры растет, доля деструктивных атак на российские организации будет увеличиваться. Чтобы подготовиться к растущим угрозам, мы планируем совместно с “Норникелем” работать над повышением киберустойчивости отрасли».Читать полностью…
dateparserdateparser
— это библиотека Python
, предоставляющая удобные инструменты для разбора и анализа текстовых дат и времени. Она автоматически определяет формат даты и времени в текстовой строке и преобразует его в объект datetime
. Это особенно полезно, когда у вас есть текстовые описания дат и времени в различных форматах, и вы хотите их структурировать.
Обратите внимание, что dateparser
может использовать текущие локальные настройки для определения форматов даты и времени, поэтому результаты могут зависеть от настроек вашей системы. Вы также можете явно указать нужную локаль с помощью аргумента locales
, если это необходимо.
#python #dateparser
Работа с методом str.replace() в PythonPython
предлагает множество удобных встроенных методов для работы со строками. Один из таких методов - str.replace()
, который используется для замены частей строки.
Метод принимает два основных аргумента: первый - это подстрока, которую нужно заменить в исходной строке, а второй - это подстрока, на которую происходит замена.
Кроме того, существует третий необязательный аргумент, определяющий количество замен старой подстроки на новую. Если он не указан, метод заменяет все вхождения.
#python #replace
Daphne
Daphne — это сервер HTTP, HTTP2 и WebSocket для ASGI и ASGI-HTTP, разработанный для поддержки Django Channels. Он поддерживает автоматическое согласование протоколов; нет необходимости в префиксации URL-адресов для определения конечных точек WebSocket по сравнению с конечными точками HTTP.
#python
Дизассемблирование
При запуске программы на python, написанный код преобразуется в байт-код, который затем может быть запущен в интерпретаторе Python. Встроенный модуль dis
позволяет дизассемблировать байт-код в удобное представление для просмотра его инструкций. Полный спсиок инструкций байт-кода с описанием можно посмотреть в доке модуля.
На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
#модули #байткод
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция urlencode
из из модуля urllib
.
Сокращение ссылок с помощью PyShorteners
Вы наверняка сталкивались с сервисами по сокращению ссылок, даже если никогда не использовали их сами. Сокращённые ссылки часто встречаются в описаниях к видео на YouTube, в статьях и на множестве других ресурсов в интернете.
Создание сокращенной ссылки может показаться сложной задачей, но на самом деле это можно сделать всего за три строчки кода с помощью библиотеки PyShorteners
, пример кода можно найти на фото.
#python #pyshorteners
Работаем с f-строками
Думаю, про f-строки как метод форматирования все уже знают. Напоминаю, что появились они еще в Python 3.6.
Но им добавили еще одну классную фичу в обновлении 3.8 — можно выводить имя переменной и сразу ее значение, добавив знак равно как показано на картинке.
#python #f_string
Yandex DEVent PRO в Питере
Это серия офлайн-митапов для опытных бэкендеров от команды Поиска и Рекламных технологий. Здесь можно в закрытом формате познакомиться с лидами из других команд, обменяться опытом и пообщаться.
В этот раз митап пройдёт в Санкт-Петербурге 19 июня: будет настоящее раздолье для нетворкинга, а ещё обсуждение горячих и спорных тем по разработке в формате speed dating.
Спикеры и доклады:
🟡Константин Гудков, руководитель группы разработки Feature store. Расскажет о процессе создания Feature Store — интерфейса для работы с данными, который используется ML-моделями в Рекламе
🟡Сергей Скворцов, руководитель службы поискового райнтайма. Обсудит, как анализировать производительность нативных программ под Linux под нагрузкой с помощью Perforator
🟡Николай Савушкин, руководитель службы рекомендательных технологий. Расскажет о Real-time processing в рекомендательных системах Яндекса
А после докладов вас ждёт афтерпати: кальяны, аэрохоккей и прочие активности!
Узнать подробную информацию и зарегистрироваться можно по ссылке.
Ждём вас!
Реклама. ООО "Яндекс", ИНН 7736207543.
frozensetfrozenset
представляет собой неизменяемое множество. Основное отличие между set
и frozenset
заключается в том, что set является изменяемым типом данных, тогда как frozenset
не может быть изменен после создания.
Вот несколько ключевых особенностей frozenset
:
Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в frozenset
после его создания.
Хешируемость: Поскольку frozenset
неизменяем, он является хешируемым, что означает, что его можно использовать в качестве ключа в словарях и элемента множества.
Обратите внимание, что, поскольку frozenset
не поддерживает изменения, некоторые методы, которые изменяют множество (например, add
, remove
, discard
), не применимы к frozenset
. Однако, вы можете выполнять операции, возвращающие новые frozenset
, такие как объединение и пересечение.
#python
Упрощенная работа с JSON
Казалось бы, куда еще проще, но есть один интересный пакет JMESpath
, который позволяет декларативно указать, как извлекать элементы из документа JSON.
Основные примеры использования показаны на картинке, там нет ничего сложного. Метод search
принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON).
Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
PyQt6PyQt6
— это библиотека на Python
для создания графических интерфейсов (GUI), связывающая Python с Qt. Она предоставляет широкий набор виджетов и функциональностей для создания кроссплатформенных приложений.PyQt6
поддерживает современные стандарты, включая Qt Quick, для разработки интерактивных интерфейсов. Библиотека легко интегрируется с другими фреймворками Python, что делает её подходящей для сложных проектов.
#python #pyqt #pyqt6
Работа с аргументами и параметрами командной строки
В Python
для обработки передаваемых аргументов и создания удобного интерфейса командной строки существует отличный модуль argparse
.
Для начала нужно создать объект парсера ArgumentParser
, в который можно добавить аргументы с необходимыми параметрами с помощью метода add_argument
.
Первым параметром метод add_argument
принимает либо имя обязательного позиционного аргумента, либо список опциональных аргументов (опциональные аргументы идентифицируются через -). Также у add_argument
есть множество необязательных опциональных параметров для работы с передаваемыми значениями аргумента.
После добавления всех аргументов их нужно спарсить с помощью метода parse_args
. На выходе получится объект, содержащий все переданные аргументы.
#python #argparse
DocxtplDocxtpl
— это библиотека Python, которая позволяет генерировать Word-документы на основе шаблонов. С её помощью можно легко создавать динамические документы, вставляя данные из Python в шаблон docx
.
Библиотека поддерживает различные типы данных и позволяет использовать сложные шаблоны, что делает её мощным инструментом для автоматизации создания документов.
#docxtpl
Вычисляем размер объектов в памяти
Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(object[, default])
. Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.
Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент default
позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError
.
Функция getsizeof
вызывает метод __sizeof__
объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.
#sys #sizeof #oop
NetworkX
NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.
Она может использоваться в различных областях, таких как социальные, биологические, транспортные, компьютерные сети и многих других.
#python
Академия Аналитиков Авито открыла набор на курс 2024 – 25.
Это бесплатная образовательная программа для тех, кто хочет развиваться как аналитик данных или DS-инженер.
13 месяцев глубокого погружения в реальные задачи бизнеса, общение с ведущими экспертами бигтеха, помощь и поддержка куратора и ментора в поисках своего места в индустрии.
Присоединиться — задача не из лёгких. Нужно сдать два вступительных теста и быть готовым учиться до 25 часов в неделю, делать домашку и реализовывать неординарные проекты. Зато у выпускников есть все шансы на вау-карьеру, в том числе в самом Авито.
Новости для будущих студентов
Ректор Центрального университета Евгений Ивашкевич раскрыл планы вуза по вовлечению большого бизнеса в образовательные процессы страны. "Очень скоро мы можем остаться без инженерных и IT-кадров. Все понимают, что через 10–15 лет не с кем будет работать. Именно поэтому наша задача – это привлечь бизнес к решению проблем образования. Чтобы бизнес вкладывался в образовательные проекты в области информатики, физики и химии," - подчеркнул Ивашкевич.
По словам ректора, четыре года назад в стране профильную математику на ЕГЭ сдавало около 360 000 школьников, а в прошлом году – всего 283 000 школьников. "Компаниям недостаточно просто открывать свои кафедры в вузах. На таких кафедрах, как правило, учатся 30–40 человек, что совсем немного — это не решает проблему дефицита кадров стране," - пояснил он.
Именно поэтому был создан Центральный университет — вуз от бизнеса и для бизнеса. "Мы хотим дать нашим студентам и образование, и профессию. Только так можно обеспечить эффективный социальный лифт для выпускников, сделать их востребованными специалистами на рынке труда," - отметил Евгений.
18 и 19 мая Центральный университет проведет масштабный День открытых дверей перед стартом приемной кампании.
Мероприятие пройдет в головных офисах партнеров ЦУ — VK и Тинькофф.
🔗 Гостям обязательно нужно пройти регистрацию
Как перезагрузить импортированный модуль?
Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib.
Замените module_name на фактическое имя модуля, который вы хотите перезагрузить.
Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин.
#модули
Яндекс впервые проведет Young Con — фестиваль про карьеру в IT и современные технологии
• 6000 участников
• Более 10 часов нетворкинга и интерактивных активностей
• 9 тематических «миров», которые погрузят участников в разные сервисы компании
• 30 руководителей Яндекса, которые расскажут, как создаются технологии, а также поделятся опытом и советами, как начать карьеру в Яндексе
Фестиваль в стиле гик-приключения понравится тем, кто интересуются технологиями и хочет узнать больше про работу и возможности для развития в крупных IT-компаниях.
Young Con состоится 27 июня на Live Arena.
На фестивале станет известен победитель масштабного студенческого турнира по спортивному программированию «Баттл вузов». Участники команды-победителя разделят между собой призовой фонд в 1 млн рублей.
А в конце фестиваля выступят группы The Hatters и Хлеб.
Young Con пройдет в онлайн- и офлайн-формате. Чтобы попасть на фестиваль, нужно заполнить форму на сайте. У начинающих айтишников также будет возможность пройти экспресс-собеседование прямо во время ивента, чтобы в будущем получить приглашение на стажировку в Яндекс.
Регистрация уже открыта.