Python:'{:,}'。format()为什么会这样?

时间:2015-05-20 10:25:17

标签: python string string-formatting

代码战中有一个kata,其任务是编写一个在输入中取整数并输出货币格式字符串的函数。例如name id bar 1 baz 2 baz 3 other 4 - > 123456

我有一个解决方案,但它比使用字符串格式的更加丑陋:

"123,456"

我已阅读文档,但我仍然不知道这是如何工作的?

3 个答案:

答案 0 :(得分:8)

您可以使用python的格式语言,如:

'{name:format}'.format(...)

name是可选的,可以为空:

'{:format}'.format(...)

format是格式说明符。如果没有给出,通常根据format(...)给出的参数类型推断出来。

在这种情况下,format,,它指示python添加组分隔符,就像要求的那样。 来自https://docs.python.org/2/library/string.html#formatspec

  

,选项表示使用逗号表示千位分隔符。   对于区域设置感知分隔符,请使用n整数表示形式   代替。

答案 1 :(得分:6)

format string syntax表示:引入格式说明符which is defined as follows

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]

其中所有元素都是可选的,其中

  

' ,'选项表示使用逗号分隔千位分隔符。对于区域设置感知分隔符,请使用' n'而是整数表示类型。

答案 2 :(得分:0)

来自documentation

  

将逗号用作千位分隔符:

>>>
>>> '{:,}'.format(1234567890)
'1,234,567,890'

<强>解释

:引入了格式说明符。

,格式说明符表示使用逗号表示千位分隔符。它是在Python 2.7和3.1版本中添加的,它在PEP 0378中有更详细的描述。