Python 打印数字时添加千位分隔符

Python 打印数字时添加千位分隔符,python,optimization,numbers,decimal,Python,Optimization,Numbers,Decimal,我真的不知道这个问题的“名称”,所以它可能是一个不正确的标题,但问题很简单,如果我有一个数字 例如: number = 23543 second = 68471243 我想把它做成这样的print() 23543 68471243 我希望这能解释得足够多,否则请添加评论。 感谢您的帮助 最简单的方法是将locale设置为en_US 例如: import locale locale.setlocale(locale.LC_ALL, 'en_US') number = 23543 second =

我真的不知道这个问题的“名称”,所以它可能是一个不正确的标题,但问题很简单,如果我有一个数字

例如:

number = 23543
second = 68471243
我想把它做成这样的
print()

23543
68471243

我希望这能解释得足够多,否则请添加评论。
感谢您的帮助

最简单的方法是将locale设置为en_US

例如:

import locale
locale.setlocale(locale.LC_ALL, 'en_US')
number = 23543
second = 68471243
print locale.format("%d", number, grouping=True)
print locale.format("%d", second, grouping=True)
印刷品:

23,543
68,471,243

如果您只需要添加逗号作为千位分隔符,并且使用的是Python 3.6版或更高版本:

print(f"{number:,g}")
这使用格式化的字符串文字样式。大括号
{0}
中的项是要格式化为字符串的对象。冒号
表示应该修改输出。逗号
表示应使用逗号作为千位分隔符,
g
表示一般数字。[]

对于较旧的Python 3版本,不带f字符串:

print("{0:,g}".format(number))
这使用str对象[]的格式方法。大括号
{0}
中的项是字符串中的占位符,冒号
表示应该修改内容。逗号
表示应使用逗号作为千位分隔符,
g
表示一般数字[]。然后调用string对象的
format
-方法,并将变量
number
作为参数传递

68471,24,3对我来说似乎有点奇怪。只是打字错误吗


您是指千个分隔符吗?错误:不支持的区域设置
return\u setlocale(category,locale)
您使用的是哪个操作系统?Windows 7但这在Linux上可以工作?在Linux上,您可以轻松安装新的区域设置。我不知道如何在Windows7中做到这一点:(我更新了答案以包含新的格式化字符串文本版本。