Python 3.9: что нового? Классные функции для оформления заказа

Опубликовано: 2020-12-01

Python — самый любимый язык среди разработчиков. Согласно индексу Tiobe, который представляет собой сообщество программистов, ранжирующее языки программирования в соответствии с их популярностью, Python занял второе место, обогнав Java. Python имеет отличную поддержку сообщества, и благодаря его простоте и удобству использования каждый новичок стремится освоить хотя бы этот язык.

Несмотря на то, что в последние годы этот язык привлек большое внимание, найдя применение в области анализа данных, машинного обучения, веб-разработки, компьютерных приложений, Интернета вещей или других областях разработки, была выпущена его последняя стабильная версия Python 3.9, которая приносит множество изменений от синтаксического анализатора до дополнительных функций, чтобы изменить временную шкалу выпуска функций. Рассмотрим эти изменения подробнее:

Оглавление

Новый оператор

При работе со словарями очень часто нам нужно объединить или обновить их с помощью статей из других словарей. Ранее это можно было сделать с помощью атрибута обновления объекта словаря: first_dict.update(second_dict), но проблема с этим подходом заключается в том, что изменения выполняются на месте, а исходные значения модифицируются.

Чтобы сделать это изменение временным, требуется другая переменная для хранения предыдущего значения. В этой новой версии представлен новый оператор, известный как оператор слияния (|), который можно использовать для слияния словарей. Вот пример кода, чтобы понять это:

A = { «имя» : «Автор», «компания» : «upGrad»}

B = { «статус» : «инструктор»}

печать (А|Б)

Вывод: { «имя»: «Автор», «компания»: «upGrad», «статус»: «преподаватель»}

| похож на оператор конкатенации, но если вы хотите обновить исходное значение, вы можете просто использовать оператор |=. Продолжая предыдущий пример, A |=B обновит значение словаря A.

Читайте также: Зарплата разработчиков Python в Индии

Строковые операции

Манипуляции с текстом составляют основную часть жизненного цикла науки о данных, особенно во время НЛП. Существуют различные функции для выполнения различных типов строковых операций, таких как разделение, объединение, замена и многие другие. В дополнение к этому наследию были добавлены две новые операции: removesuffix() и removeprefix().

Как следует из названия, они используются для удаления префиксов и суффиксов из строки. Они доступны с помощью строкового объекта. Это удаление можно легко сделать с помощью регулярных выражений и нарезки строк, но теперь у нас есть эта функция во встроенных библиотеках. Вот простой пример для иллюстрации:

'@something_new'.removeprefix('@')

'something_231'.removesufix('231')

Выход:

что-то новое

что-то_

Модифицированный модуль часового пояса

В этой версии также представлен новый модуль под названием «информация о зоне», поддерживающий базу данных IANA в стандартной библиотеке. Мы можем указать часовой пояс в объекте DateTime из стандартной библиотеки, но в конечном итоге пользователь может создать сложные правила для часовых поясов. Согласно PEP 615, пользовательская база более склонна к основным часовым поясам, таким как UTC, IANA или местный системный часовой пояс. Теперь вы можете создать информационный объект зоны, указав путь поиска конфигурации, который имеет вид «континент/город». Например,

из zoneinfo импортировать ZoneInfo

из даты и времени импортировать дату и время

dt = datetime(2020, 11, 15, 01, tzinfo=ZoneInfo("Азия/Калькутта"))

dt.tzname()

Выход: «ИСТ»

Узнайте о: Лучшие инструменты Python

Новые математические функции

Математический модуль состоит из всех числовых операций, которые используются в общей математике. Будь то функции синуса, косинуса, округление чисел до определенного места или универсальные константы, такие как пи или экспонента, математический модуль охватывает почти все типы функций.

В этот список добавлены три новые функции: math.lcm(), math.nextafter(), math.ulp(). В то время как LCM (наименьший общий кратный) является очень часто используемой функцией, две другие используются не так часто. Раньше нам приходилось явно создавать функцию для работы LCM, но теперь, запуская эту новую версию, у нас есть встроенная функциональность в стандартной библиотеке. Чтобы использовать эту функцию, просто вызовите:

импортировать математику

мат.lcm(2,3)

Выход: 6

Если в эту функцию не переданы аргументы, то она возвращает 1, а если один из них равен нулю, то возвращает 0.

Высокопроизводительный парсер

Помимо всех новых дополнений на уровне функций, синтаксический анализатор языка Python также обновлен для новой, более быстрой технологии, известной как синтаксический анализатор PEG. Этот эффект не отразится в этой версии, но в грядущей версии Python 3.10. Со дня создания Python он использует синтаксический анализатор LL(1), который анализирует код сверху вниз и слева направо. Этот синтаксический анализатор основан на контекстно-свободной грамматике, и поэтому он неоднозначен, что означает, что строки могут иметь более одного дерева синтаксического анализа и увеличивать количество промежуточных шагов. Новый синтаксический анализатор PEG генерирует только одно допустимое AST (абстрактное синтаксическое дерево), устраняя неоднозначность предыдущего синтаксического анализатора.

Новая случайная функция и изменение в цикле выпуска

В модуль random.random добавлен новый метод randbytes(n), который возвращает случайные n байтов. Это очень похоже на другие случайные функции. Также ранее Python выпускал новую версию каждые 18 месяцев, которая была сокращена до 12 месяцев.

Получите сертификат по науке о данных от лучших университетов мира. Изучите программы Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Всякий раз, когда выходит новая версия программного обеспечения, она сопровождается множеством новых изменений. Здесь мы обсудили некоторые из основных и выделенных изменений в Python, которые включают новый оператор, дополнительные функции и улучшенный синтаксический анализатор.

Есть много новых изменений и в других модулях, таких как ast, asyncio, concurrent.futures, multiprocessing, XML. Некоторые функции устарели, и этот список можно продолжить. Вы можете проверить официальную документацию для получения полного списка обновлений в новой версии Python 3.9.

Если вам интересно узнать о python и науке о данных, ознакомьтесь с дипломом PG IIIT-B и upGrad по науке о данных, который создан для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевыми экспертами, Индивидуальные встречи с отраслевыми наставниками, более 400 часов обучения и помощь в трудоустройстве в ведущих фирмах.

Почему Python предпочтительнее других языков программирования?

Есть множество причин, по которым Python предпочтительнее других языков. Во-первых, коды Python разборчивы и понятны даже разработчикам, которые никогда их раньше не писали. Python широко распространен в научном сообществе, и среди пользователей Python есть множество исследователей и профессоров. Коды, созданные на Python, могут быть переданы, скопированы и изменены разработчиками. Кроме того, Python имеет сильное сообщество и быстро развивается, поскольку это бесплатный и открытый язык программирования. Python совместим с широким спектром систем. Это помогает разработчикам, поскольку они не сталкиваются с трудностями, характерными для других языков.

Какая польза от math.nextafter() и math.ulp() в Python?

Nextafter() и ulp() — две новые функции, добавленные в математическую библиотеку в Python 3.9.0. Функция nextafter() возвращает следующее значение с плавающей запятой после x в направлении y. Если x равно y, возвращается значение y. Его синтаксис таков: math.nextafter(x, y), где x и y — два целых числа/значения с плавающей запятой. ULP — это аббревиатура, означающая «Единица на последнем месте». ULP - это пространство между значениями с плавающей запятой в численном анализе и информатике. Функция math.ulp() возвращает значение младшего бита числа x с плавающей запятой. Его синтаксис представляет собой математический ulp(x), а входной аргумент x должен быть числом с плавающей запятой, значение ulp которого должно быть возвращено.

Что такое парсер в Python?

На этапе синтаксического анализа компилятор проверяет, организованы ли токены, созданные лексическим анализатором, в соответствии с синтаксическими правилами языка. За это отвечает парсер. Парсер получает строку токенов от лексического анализатора и проверяет, соответствует ли строка грамматике исходного языка. Любые синтаксические проблемы обнаруживаются и сообщаются, и создается дерево синтаксического анализа, из которого разработчики могут генерировать промежуточный код. Кроме того, модуль парсера взаимодействует с внутренним парсером Python и компилятором байт-кода. Основная цель этого интерфейса — позволить кодам Python изменять деревья синтаксического анализа выражения Python и генерировать из него рабочие коды.