到目前为止还没有人提到在版本2.7中添加到格式规范迷你语言的新的’,’选项 – 参见
What’s New in Python 2.7 document中的
PEP 378: Format Specifier for Thousands Separator.它很容易使用,因为你不必混乱地区(但是限于国际化,因为这一点,见
original PEP 378)。它适用于浮点数,整数和小数 – 以及在迷你语言规范中提供的所有其他格式化功能。
样品用量:
print format(1234, ",d") # -> 1,234
print "{:,d}".format(1234) # -> 1,234
注意:虽然这个新功能是绝对方便,但实际上并不是很难使用locale模块,正如其他人建议的那样。优点是,当输出数字,日期和时间等数字输出时,可以使数字输出自动遵循在各国使用的正确的数千(和其他)分隔符约定。它也很容易把你的计算机的默认设置生效,没有学习一堆语言和国家代码。所有你需要做的是:
import locale
locale.setlocale(locale.LC_ALL, '') # empty string for platform's default settings
之后,你可以使用通用的’n’类型代码输出数字(整数和浮点数)。在我在哪里,逗号用作千位分隔符,因此在设置如上所示的语言环境后,这将是会发生什么:
print format(1234, "n") # -> 1,234
print "{:n}".format(1234) # -> 1,234
世界上大部分地方使用句点而不是逗号用于此目的,因此在许多位置设置默认语言环境(或在setlocale()调用中显式指定此类区域的代码)会产生以下结果:
print format(1234, "n") # -> 1.234
print "{:n}".format(1234) # -> 1.234
基于’d’或’,d’格式类型说明符的输出不受setlocale()的使用(或不使用)的影响。但是,如果您使用locale.format()或locale.format_string()函数,则“d”说明符会受到影响。