F-string也允许自定义数字显示的格式。有个非常普遍的需求就是把数字以每3位为一个间隔使用下划线进行分隔。
>>> big_num = 1234567890
>>> f"{big_num:_}"
'1_234_567_890'
使用逗号千分位分隔符数字
实际上,可以随便用任何符号做千分位分隔符。所以用逗号做分隔符也完全没问题。
>>> big_num = 1234567890
>>> f"{big_num:,}"
'1,234,567,890'
甚至可以一次性同时搞定既有千分位分隔符又有精度设定的浮点数。
>>> num =2343552.6516251625
>>> f"{num:,.3f}"
‘2,343,552.652'
使用空格做千分位分隔符
用空格也可以吗?
可以用逗号做分隔符之后再用空格替换逗号。
>>> big_num = 1234567890
>>> f"{big_num:,}".replace(',',' ')
'1 234 567 890'
还有个方法是设定本地语言环境,换成一个用空格作千位分隔符的环境比如pl_PL(波兰语环境)。更多信息可参考这个Stack Overflow链接:
https://stackoverflow.com/a/17484665