桁区切り記号付きの数値を出力するには、Python フォーマット文字列を使用できます。
'{:,}'.format(1234567890)
しかし、千単位の区切り記号にスペースが必要であることをどのように指定できますか?
桁区切り記号付きの数値を出力するには、Python フォーマット文字列を使用できます。
'{:,}'.format(1234567890)
しかし、千単位の区切り記号にスペースが必要であることをどのように指定できますか?
あなたが台無しにしたくない場合、これは悪いが簡単な解決策ですlocale
:
'{:,}'.format(1234567890.001).replace(',', ' ')
これにより、ロケール環境がデフォルトの OS の場所に設定されます。
import locale
locale.setlocale(locale.LC_ALL, '')
次に、次を使用できます。
"{0:n}".format(1234567890)
'n'
代わりにロケール対応の数値形式を使用し、スペースを千単位の区切り記号として使用するロケールに設定する必要があります。はい、これは痛いです。
'n'
- 番号。'd'
これは、現在のロケール設定を使用して適切な数字区切り文字を挿入する点を除いて、 と同じです。
あなたがコーディングするとしましょう:
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 などの表記を覚えておいてください。表記は、それに応じて普遍的な基準と一致する必要があります。
ローカルを使用したくない場合は、すべてのサイズの 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)