Как работает метод Python String format ()? 10 примеров

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

Давайте посмотрим, как функция str.format () работает в Python. Вы также узнаете, как использовать этот формат в своих программах.

Как работает Python String format ()?

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

Он работает, выделяя место для ваших результатов внутри строки с помощью фигурных скобок. Затем он записывает ваш вывод в эту позицию с помощью метода format () .

Строки за скобками – это то, что вы называете буквальным текстом.

Как использовать метод Python String format ()

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

Вот как выглядит общий синтаксис:

 str.format(value, format_spec)

Теперь давайте рассмотрим более практические примеры использования этого строкового метода Python.

1. Вставьте значение в определенную позицию

Вот базовый пример того, как вставить значение в строку с помощью метода str.format () :

 Cost = 45
formattedMethod = "This good costs {} dollars only"
print(formattedMethod.format(Cost))
Output: This good costs 45 dollars only

Приведенный выше код такой же, как:

 formattedMethod = "This good costs {} dollars only"
print(formattedMethod.format(45))
Output: This good costs 45 dollars only

2. Вставьте несколько выходов в строку

Вы также можете вставить несколько результатов в строку. Вот как:

 y = 7*8
f = 5+5
g = 0
a = "The value of y is {}, while f is {}. Nobody can see {}".format(y, f, g)
print(a)
Output: The value of y is 56, while f is 10. Nobody can see 0

3. Используйте escape-скобки, чтобы поместить выходные данные в специальные скобки.

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

Например, предположим, что вы хотите поместить y в специальную фигурную скобку:

 a = "The value of y is {{{}}}, while f is {}. Nobody can see {}".format(y, f, g)
print(a)
Output: The value of y is {56}, while f is 10. Nobody can see 0

4. Выходные значения из списка

Вы можете выбрать определенные значения из списка и вставить их в строку:

 myList = [10, 2, 4, 6]
print(("The first is {} and the third is {}").format(myList[0], myList[2]))
Output: The first is 10 and the third is 4

Чтобы избежать повторения в круглых скобках .format () , вы можете вместо этого установить спецификатор формата, указывающий на одну переменную.

Вот как это сделать:

 myList = [10, 2, 4, 6]
print(("The first is {yourList[0]} and the third is {yourList[2]}").format(yourList = myList))
Output: The first is 10 and the third is 4

Вышеупомянутый пример применим и к другим примерам, которые мы рассматривали ранее. Итак, вы можете поиграть с ними, используя этот трюк.

5. Вставить значения из словаря

Точно так же, как и в предыдущем разделе, вы можете использовать метод str.format () для вставки значения словаря в строку:

 myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6}
print(("The first is {} and the third is {}").format(myDiction["Ten"], myDiction["Four"]))
Output: The first is 10 and the third is 4

Связанный: Как преобразовать список в словарь в Python

И если вы хотите использовать прием из предыдущего раздела:

 myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6}
print(("The first is {Ten} and the third is {Four}").format(**myDiction))
Output: The first is 10 and the third is 4

Вы также можете написать приведенный выше код как:

 print(("The first is {d[Ten]} and the third is {d[Four]}").format(d=myDiction))
Output: The first is 10 and the third is 4

6. Вставьте вывод функции в строку.

Если вы хотите показать вывод функции в виде строки:

 def difNums(a, b):
if a > b:
return a - b
else:
return return "You can't substract {} from {} using this function".format(a, b)
print(("Hey there: {}").format(difNums(2, 6)))
Output: Hey there: You can't substract 2 from 6 using this function

Использование спецификаторов формата строки Python

Спецификатор формата позволяет вам выбрать, как будет восприниматься ваш формат. Как упоминалось ранее, это необязательный параметр, который поставляется с str.format () .

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

Вы часто будете писать спецификаторы формата внутри фигурных скобок. Но вы также можете указать их явно внутри скобок .format () .

Давайте продолжим и посмотрим некоторые из его вариантов использования.

7. Выровнять строковый вывод

Вы можете использовать знак «больше» ( > ), чтобы выровнять вывод строки по правому краю:

 print("Hello {:>15}".format(12734589))
Output: Hello 12734589

Вы также можете выровнять текст по центру, если хотите:

 print("Hello {:^15}".format(12734589))
Output: Hello 12734589

Давайте дальше отформатируем вышеприведенный вывод. Например, вы можете включить подчеркивание, чтобы увидеть отступы по обе стороны от строкового вывода:

 print("Hello {:_^15}".format(12734589))
Output: Hello ___12734589____

Но, как упоминалось ранее, вы можете явно указать спецификатор формата как параметр в str.format () .

Итак, предыдущий код в этом случае выглядит так:

 print("Hello {:{g}}".format(12734589, g = "_^15"))
Output: Hello ___12734589____

Не стесняйтесь переписывать другие примеры, используя вышеуказанный вариант.

8. Форматируйте выходные данные до определенного количества значащих цифр.

Вы также можете захотеть вернуть определенное количество значащих цифр для вычисления с помощью метода .format () .

Например, в приведенном ниже примере кода результат математической операции округляется до одного значащего десятичного числа:

 calcprofitPerc = ((45 - 20)/45)*100
formattedOutput = "Our profit on this is {profit: .1f}%"
print(formattedOutput.format(profit = calcprofitPerc))
Output: Our profit on this is 55.6%

9. Обрезать длинные строки

Хотя усечение текста может показаться непрактичным, вы не можете сказать, где оно вам может понадобиться.

Вот как отрезать часть строкового вывода с помощью функции str.format () :

 print(("Truncate this to the first 3 alphabets: {:.3}").format("idowuomisola"))
Output: Truncate this to the first 3 alphabets: ido

10. Отдельная группа чисел с использованием критериев

Вы можете разделить группу чисел с помощью подчеркивания или запятой:

 print("Separated by underscore: {:{g}}".format(12734589, g="_"))
print("Separated by comma: {:{g}}".format(12734589, g=","))
Output:
Separated by underscore: 12_734_589
Separated by comma: 12,734,589

Связанный: Как разбить строку в Python

Более того, вы можете указать группу чисел, которую хотите обработать, используя ее ключ:

 print("First numbers by underscore: {0:{g}}".format(12734589, 123674, 662772, g="_"))
print("Third numbers by comma: {2:{g}}".format(12734589, 123674, 662772, g=","))
Output:
First numbers by underscore: 12_734_589
Third numbers by comma: 662,772

Представить выходные данные красиво с помощью метода Python String format ()

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