80

桁区切り記号付きの数値を出力するには、Python フォーマット文字列を使用できます。

'{:,}'.format(1234567890)

しかし、千単位の区切り記号にスペースが必要であることをどのように指定できますか?

4

7 に答える 7

98

あなたが台無しにしたくない場合、これは悪いが簡単な解決策ですlocale

'{:,}'.format(1234567890.001).replace(',', ' ')
于 2013-09-19T09:30:55.907 に答える
18

これにより、ロケール環境がデフォルトの OS の場所に設定されます。

import locale
locale.setlocale(locale.LC_ALL, '')

次に、次を使用できます。

"{0:n}".format(1234567890)
于 2013-11-11T17:42:03.163 に答える
13

'n'代わりにロケール対応の数値形式を使用し、スペースを千単位の区切り記号として使用するロケールに設定する必要があります。はい、これは痛いです。

'n'- 番号。'd'これは、現在のロケール設定を使用して適切な数字区切り文字を挿入する点を除いて、 と同じです。

于 2013-05-21T12:37:31.233 に答える
1

あなたがコーディングするとしましょう:

print(f'{name} | Yearly salary: ${salary}.')

プリント -> ケイト | 年俸:600万円。

最初に , 区切り記号を付けます:

print(f'{name} | Yearly salary: ${salary:,}.')

プリント -> ケイト | 年俸:60,000ドル。

次に、コンマをスペースに置き換えます。

print(f'{name} | Yearly salary: {salary:,} USD.'.replace(',', ' '))

プリント -> ケイト | 年俸: 60,000 米ドル。

注: USD、$、£、kroner などの表記を覚えておいてください。表記は、それに応じて普遍的な基準と一致する必要があります。

于 2021-11-12T22:49:49.577 に答える
0

ローカルを使用したくない場合は、すべてのサイズの string で機能するソリューション:

    def format_number(string):
        j = len(string) % 3
        substrings = [string[3 * i + j:3 * (i + 1) + j] for i in                                         range(len(string)//3)]
        if j != 0:
            substrings.insert(0, string[:j])
        return " ".join(substrings)
于 2021-10-12T14:21:54.257 に答える