Как заменить разделитель тысяч на апостроф в строке формата - PullRequest
1 голос
/ 18 июня 2020

Следующее выводит десятичное число с запятыми в качестве разделителя тысяч:

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

123,456,789

Согласно PEP-378 (что кажется уместным здесь?), Разделителем может быть запятая, точка, пробел, апостроф или подчеркивание. Мне удалось получить знак подчеркивания:

print(f"{num:_}")

123_456_789

Но как мне получить точку, пробел или, что самое главное, апостроф?

Ответы [ 2 ]

1 голос
/ 18 июня 2020

«Правильный» способ сделать это - использовать модуль locale:

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

В этом случае в вашей системе должен быть установлен швейцарско-немецкий языковой стандарт, но он совместим с все установленные локали, так что вы можете легко сгенерировать практически все форматы, которые где-то используются.

0 голосов
/ 18 июня 2020

простой способ сделать это - сохранить вашу строку в переменной типа string и, если вы хотите использовать апострофы вместо символов подчеркивания,

print(string.replace('_',"'"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...