提问者:小点点

如何将格式字符串中的千分隔符改为撇号


下面打印一个以逗号作为千位分隔符的十进制数字:

num = 123456789
print(f"{num:,}")

123,456,789

根据PEP-378(这里似乎相关?),分隔符可以是逗号,点号,空格,撇号或下划线。 我设法得到一个下划线:

print(f"{num:_}")

123_456_789

但是我如何得到一个点,一个空格,或者对我来说最重要的,一个撇号呢?


共2个答案

匿名用户

简单的方法是将字符串存储在string这样的变量中,假设您希望使用撇号而不是下划线,

print(string.replace('_',"'"))

匿名用户

执行此操作的“正确”方法是使用locale模块:

>>> import locale
>>> locale.setlocale(locale.LC_NUMERIC, 'de_CH.utf8')
>>> locale.format_string('%d', 123457890, grouping=True)
"123'457'890"

在本例中,这需要在您的系统上安装瑞士-德语区域设置,但它与所有已安装的区域设置兼容,因此您可以轻松地生成几乎所有在某处使用的格式。