使用 Python3 字符串格式迷你语言打印带有标点符号的大整数

Print a big integer with punctions with Python3 string formatting mini-language

我想在大数的每三位数字后加一个点(例如 4.100.200.300)。

>>> x = 4100200300
>>> print('{}'.format(x))
4100200300

此问题特定于 Python 字符串格式化迷你语言。

只有一个可用的千位分隔符。

The ',' option signals the use of a comma for a thousands separator.

(docs)

示例:

'{:,}'.format(x) # 4,100,200,300

如果您需要使用点作为千位分隔符,请考虑将逗号替换为 '.' 或适当设置语言环境(LC_NUMERIC 类别)。

您可以使用 this 列表来查找正确的语言环境。请注意,您必须使用 n 整数表示类型来进行语言环境感知格式设置:

import locale
locale.setlocale(locale.LC_NUMERIC, 'de_DE') # or da_DK, or lt_LT, or mn_MN, or ...
'{:n}'.format(x) # 4.100.200.300

在我看来,前一种方法要简单得多:

'{:,}'.format(x).replace(',', '.') # 4.100.200.300

format(x, ',').replace(',', '.') # 4.100.200.300