Метод Python format () возвращает заданное значение в заданном формате. Метод format () — это реализация более высокого уровня для сложного форматирования различных объектов и строк. Если вы хотите отформатировать строку, вам пригодится функция Python format ().
Python format ()
String.format () — один из методов форматирования строк в Python3, который допускает множественные подстановки и форматирование значений. Этот метод позволяет нам объединять элементы в строке с помощью позиционного формата.
Python 3 представил новый метод для форматирования строки, который позже также был перенесен на Python 2.7.
Этот «новый стиль» форматирования строк избавляется от специального синтаксиса % — operator и делает синтаксис для строки форматирование более стандартное.
Форматирование теперь обрабатывается путем вызова функции format () для строкового объекта.
Вы можете использовать Python format () для простого позиционного форматирования, точно так же, как вы могли бы использовать форматирование в «старом стиле».
Или вы можете ссылаться на свои подстановки переменных по имени и использовать их в любом порядке, который вы хотите использовать.
Это довольно мощная функция, поскольку она позволяет изменять порядок отображения без изменение аргументов, переданных в format ().
Метод Python format () форматирует указанное значение (значения) и вставляет их в заполнитель строки.
Заполнитель — это определяется с помощью фигурных скобок: {}.
Дополнительные сведения о заполнителях см. в разделе «Заполнители» ниже.
Синтаксис
format ( value [, format_spec])
value : Это то значение, которое нужно отформатировать.
format_spec : Спецификатор формата, который указывает, как значение должно быть отформатировано.
Эта функция вызывает __format __ ( ) метод объекта значения.
Мы можем определить функцию для наших пользовательских классов, чтобы использовать с ними функцию format ().
Вот некоторые из вариантов форматирования чисел:
- Знак ‘+’ следует использовать как с положительными, так и с отрицательными числами.
- Знак ‘-‘ следует использовать только с отрицательными числами; это поведение по умолчанию.
- % — умножается на 100 и отображается в процентах.
- ‘b’, ‘o’, ‘x’, ‘X’ — преобразовать целое число в двоичном, восьмеричном и шестнадцатеричном формате. Буквы нижнего регистра будут использоваться для «x», тогда как буквы верхнего регистра будут использоваться для «X». Они применимы только для целых чисел.
- ‘e’, ’E’, ‘f’, ‘F’ — используются с числами с плавающей запятой для обозначения экспоненты и обозначения с фиксированной точкой соответственно.
Метод format () возвращает форматированную строку.
Различные типы спецификаторов формата в Python
См. следующие спецификаторы формата.
‘
‘>’ — Результат выравнивается по правому краю
‘^’ — По центру выравнивается результат
‘=’ — Помещает знак в крайнее левое положение
‘+’ — Используйте знак плюса, чтобы указать, является ли результат положительным или отрицательным
‘-‘ — Используйте знак минус только для отрицательных значений
» — Используйте начальный пробел для положительных чисел
‘,’ — Используйте запятую как разделитель тысяч
‘_’ — используйте символ подчеркивания как разделитель тысяч
‘b’ — двоичный формат
‘c’ — преобразует значение в соответствующий символ Unicode.
‘d’ — десятичный формат
‘e’ — научный формат со строчной буквой e
‘E’ — научный формат с заглавными буквами E
‘f’ — формат номера фиксированной точки
‘F’ — формат номера фиксированной точки , верхний регистр
‘g’ — общий формат
‘G’ — общий формат (с использованием верхнего регистра E для научных обозначений)
‘o’ — восьмеричный формат
‘x’ — шестнадцатеричный формат, нижний регистр
‘X’ — шестнадцатеричный формат, верхний регистр
‘n’ — числовой формат
‘%’ — процентный формат
См. следующий пример кода.
# app.py # Распечатать значение в целочисленном формате print (format (8918, 'd')) # 'd' относится к целочисленному формату # Печать значения в формате floatprint (format (123.5461213, 'f')) # 'f' относится к формату с плавающей запятой # Печать значения в двоичном формате print (format (12, 'b')) # 'b' обозначает двоичный # шестнадцатеричный формат print (format (20, 'X')) # 'X' обозначает шестнадцатеричный в верхнем регистре
Вывод
➜ pyt python3 app.py8918123.546121110014➜ pyt
Итак, в приведенном выше примере мы видим, что для форматирования ввода в целое число мы должны использовать ‘d’, в шестнадцатеричном формате, но с заглавной буквы ‘ X ‘, в двоичном формате’ b ‘ и для значения с плавающей запятой мы использовали ‘ f ‘.
Функция Python format () для настраиваемого объекта
Давайте посмотрим, как мы можем использовать функцию format () с настраиваемыми объектами.
Мы создадим класс и определим для него функцию __format __ ().
Эта функция должна возвращать строку; в противном случае мы получим ошибку.
См. следующий код.
# app.pyclass App: id = 11 def __init __ (self, i): self. id = i def __format __ (self, format_spec): print ('__ format__ метод вызван') if format_spec == 's': return "App [id =% s]"% self.id if format_spec == 'i': return str (self.id) else: return 'недопустимый формат spec'd = App (21) print (format (d,' s ')) print (format (d,' i ')) print (format (d,' x '))
Вывод
➜ вызывается метод pyt python3 app.py__format__App [id = 21] __ format__ метод, вызываемый 21__format__ метод, называемый недопустимым форматом spec➜ pyt
Операции форматирования, описанные здесь, демонстрируют множество причуд, которые приводят к нескольким распространенным ошибкам, таким как неправильное отображение кортежей и словарей..
Использование строковых литералов нового формата или интерфейса str.format () помогает избежать этих ошибок.
Эти альтернативы также предоставляют более надежные, гибкие и расширяемые методы форматирования текста.
Python String Interpolation/f-Strings
Python 3.6 добавил новый способ форматирования строк, называемый форматированными строковыми литералами или «f-строками».
Этот новый метод форматирования строк позволяет использовать встроенные выражения Python внутри строковых констант. Вот простой пример, чтобы вы почувствовали эту функцию.
См. Следующий пример кода в консоли Python.
➜ pyt python3Python 3.6.4 (v3. 6.4: d48ecebad5, 18 декабря 2017 г., 21:07:28) [GCC 4.2.1 (Apple Inc., сборка 5666) (точка 3)] на darwinType «help», «copyright», «credits» или «license» для получения дополнительной информации информации. >>> a = 11 >>> b = 21 >>> f 'Одиннадцать плюс двадцать один равно {a + b}, а не {2 * (a + b)}. "Одиннадцать плюс двадцать один равно 32 и не 64. '>>>
Как видите, здесь перед строковой константой ставится буква «f» — отсюда имя «f-strings».
Этот новый синтаксис форматирования очень мощный. Поскольку вы можете встраивать произвольные выражения Python, вы даже можете выполнять с ним встроенную арифметику.
Форматированные строковые литералы — это функция синтаксического анализатора Python, которая преобразует f-строки в серию строковых констант и выражений. Затем они объединяются для создания последней строки.
См. Следующий код.
# app.pydef wish (name, question): return f "С Днем Рождения" , {имя}! Как твой день рождения, {вопрос}? "print (wish ('Agent K', 'going'))
Вывод
➜ pyt python3 app.pyС Днем Рождения, агент К! Как проходит твой день рождения? ➜ pyt
Python Template Strings
Давайте посмотрим еще на один инструмент для форматирования строки в Python: строки шаблона . Это более простой и менее мощный механизм, но в некоторых случаях это может быть именно то, что вы ищете.
См. Следующий код.
# app .pyfrom string import Templatet = Template ('Hey, $ name!') formattedString = t.substitute (name = 'Krunal') print (formattedString)
Вывод
➜ pyt python3 app.pyHey, Krunal! ➜ pyt
Как видите, нам нужно импортировать класс Template из встроенного в Python строкового модуля.
Шаблонные строки не являются функцией основного языка, но они предоставляются строковым модулем в стандартной библиотеке.
Заключение
В Python существует несколько способов обработки форматирования строк.
У каждого метода есть свои плюсы и минусы. Ваш вариант использования будет влиять на то, какой метод вы должны использовать.
Наконец, статья Python format () окончена.
Похожие сообщения
Формат времени Python
Формат даты строки Python