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. 使用转义大括号将输出放置在专用大括号中

如果您需要将任何结果放在大括号中,这很容易。您只需要引入两个额外的转义大括号。

例如,假设您希望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 中引入的新字符串格式更具可读性和人性化。