Как работает метод 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
И если вы хотите использовать прием из предыдущего раздела:
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
Более того, вы можете указать группу чисел, которую хотите обработать, используя ее ключ:
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, более читабелен и удобен для человека.