打印数字时添加千位分隔符[重复]
Posted
技术标签:
【中文标题】打印数字时添加千位分隔符[重复]【英文标题】:Adding thousand separator while printing a number [duplicate] 【发布时间】:2013-09-25 15:58:57 【问题描述】:我真的不知道这个问题的“名称”,所以它可能是一个错误的标题,但问题很简单,如果我有一个数字
例如:
number = 23543
second = 68471243
我想让print()
像这样。
23,543 68,471,243
我希望这足以解释或添加 cmets。 任何帮助表示赞赏!
【问题讨论】:
你的意思是千位分隔符? 【参考方案1】:如果您只需要添加逗号作为千位分隔符并且使用 Python 3.6 或更高版本:
print(f"number:,g")
这使用格式化的字符串文字样式。大括号0
中的项目是要格式化为字符串的对象。冒号:
表示应该修改输出。逗号,
表示应使用逗号作为千位分隔符,g
用于一般数字。 [1]
对于较旧的 Python 3 版本,没有 f 字符串:
print("0:,g".format(number))
这使用 str-objects [2] 的格式方法。大括号 0
中的项目是字符串中的占位符,冒号 :
表示应该修改内容。逗号,
表示应使用逗号作为千位分隔符,g
用于通用数字 [3]。然后调用字符串对象的format
-方法,并将变量number
作为参数传递。
68,471,24,3 对我来说似乎有点奇怪。是不是打错字了?
Formatted string literals
Python 3 str.format()
Python 3 Format String Syntax
【讨论】:
我更新了答案以包含新的格式化字符串文字 -version。【参考方案2】:最简单的方法是将语言环境设置为 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)
您使用的是哪个操作系统?
Windows 7 但这适用于 Linux?
在 linux 上,您可以轻松安装新的语言环境。我不知道如何在 Windows 7 中做到这一点 :(以上是关于打印数字时添加千位分隔符[重复]的主要内容,如果未能解决你的问题,请参考以下文章