代码战中有一个kata,其任务是编写一个在输入中取整数并输出货币格式字符串的函数。例如name id
bar 1
baz 2
baz 3
other 4
- > 123456
。
我有一个解决方案,但它比使用字符串格式的更加丑陋:
"123,456"
我已阅读文档,但我仍然不知道这是如何工作的?
答案 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)
将逗号用作千位分隔符:
>>> >>> '{:,}'.format(1234567890) '1,234,567,890'
<强>解释强>
:
引入了格式说明符。
,
格式说明符表示使用逗号表示千位分隔符。它是在Python 2.7和3.1版本中添加的,它在PEP 0378中有更详细的描述。