首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》21.5 格式化的新方法

关灯直达底部

刚刚学习的格式化字符串的语法在 Python 的所有版本中都可以正常工作。但是在 Python 2.6 及之后的版本中,有一个新的格式化方法。因为这本书中使用的是 Python 2.7,所以我想我们也应该看一下这个新方法。你可能会在 Python 代码中见到它,所以这样你起码会知道它是什么意思。你可以自行决定使用新的还是旧的语法来格式化字符串。

format 方法

(在 Python 2.6 及之后的版本中)Python 字符串有一个名为 format 的方法。它的工作方式和你在前面见过的 % 格式化字符串很像。事实上,格式化说明符号 fge 等都是一样的,只不过使用方式稍有区别。最好用例子来说明。

下面是旧的方法:

print 'I got %.1f in math, %.1f in science' % (math, science)  

下面是新的方法:

print 'I got {0:.1f} in math, {1:.1f} in science'.format(math, science)  

在这种新方法中,格式化说明符被放在花括号中,而不再以 % 开头。01 告诉 Python 要格式化的是元组中的哪个变量。Python 计数从 0 开始,所以元组中第一个元素(变量 math)的索引是 0,第二个元素(变量 science)的索引是 1。然后使用 .1f,其用法和旧方法中一样。

这就是新方法的全部内容。你可以像旧方法中用 % 格式化一样,将格式化后的字符串存为一个变量:

distance = 149597870700myString = 'The sun is {0:.4e} meters from the earth'.format(distance)  

因为你不再使用 % 来区分格式化字符串,所以如果要打印一个 % 的话,也不需要再做任何特殊工作:

>>> print 'I got {0:.1f}% in math'.format(math)I got 87% in math  

Python 程序员们会觉得使用 format 语法更好,尤其是在 Python 3 中,但你可以自由选择。本书中的例子都使用 % 语法。