Шаг 26.
Python: тонкости программирования. ... . Способы форматирования строковых значений. №2. "Современное" форматирование строковых значений

    На этом шаге мы рассмотрим, в чем заключается этот способ.

    Python 3 ввел новый способ форматирования строк, который позднее был также перенесен в Python 2.7. Это "современное" форматирование строк избавляется от специального синтаксиса с использованием оператора % и делает синтаксис форматирования строк более упорядоченным.

    Форматирование теперь обрабатывается вызовом функции format() со строковым объектом.


См. документацию Python "str.format()": https://docs.python.org/3/library/string.html#format-string-syntax.

    Функция format() может применяться для выполнения простого позиционного форматирования, точно так же, как вы могли поступать в случае с "классическим" форматированием:

>>> 'Привет, {}'.format(name)
 'Привет, Боб'

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

>>> 'Эй, {name}! Вот ошибка 0x{errno:x}!'.format(name=name, errno=errno)
'Эй, Боб! Вот ошибка 0xbadc0ffee!'

    Этот пример также показывает, как изменился синтаксис форматирования целочисленной переменной в виде шестнадцатеричной строки. Теперь мы должны передавать спецификацию формата (format spec) путем добавления суффикса ":х" после имени переменной.

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


См. документацию Python "Синтаксис форматной строки": https://docs.python.org/3/library/string.html#format-string-syntax.

    В Python 3 "современному" форматированию строк отдается предпочтение по сравнению с форматированием с использованием %. Однако, начиная с Python 3.6, появился еще более оптимальный способ форматирования строковых значений. И с этим способом мы познакомимся на следующем шаге.

    На следующем шаге мы рассмотрим интерполяцию литеральных строк.




Предыдущий шаг Содержание Следующий шаг