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

3
我不太清楚这个问题的“名称”,所以标题可能不正确,但问题很简单,如果我有一个数字
例如:
number = 23543
second = 68471243

我想让print()的输出结果像这样:

23,543
68,471,243

希望这已经足够解释清楚了,否则请添加注释。 非常感谢您的帮助!

你是指千位分隔符吗? - Diego Herranz
2个回答

12
如果您只需要在 Python 3.6 或更高版本中添加逗号作为千位分隔符:
print(f"{number:,g}")

这里使用了格式化字符串字面值的风格。花括号中的项目{0}是要作为字符串格式化的对象。冒号:表示输出应进行修改。逗号,表示应使用逗号作为千位分隔符,g表示一般数字。[1]
在较旧的Python 3版本中,没有f-strings:
print("{0:,g}".format(number))

这里使用了字符串对象的format方法[2]。花括号中的项{0}是字符串中的占位符,冒号:表示应该进行修改。逗号,表示应使用逗号作为千位分隔符,g表示通用数字[3]。然后调用字符串对象的format方法,并将变量number作为参数传递。
对我来说,68471243似乎有点奇怪。这只是一个笔误吗? 格式化字符串字面值 Python 3 str.format() Python 3格式化字符串语法

我更新了答案,包含新的格式化字符串字面值版本。 - Gemmu

1
最简单的方法是将语言环境设置为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

错误:不支持的语言环境设置 return _setlocale(category, locale) - Frederik
你使用的操作系统是什么? - moliware
Windows 7但这能在Linux上运行吗? - Frederik
在Linux上,您可以轻松安装新的语言环境。我不知道如何在Windows 7上执行此操作:( - moliware

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接