3桁のカンマ区切りに整形するにはフォーマットで「:,」を指定し、カンマ区切り + 右寄せにするには「:>桁数,」を指定します。
カンマ区切りにする方法
フォーマット済み文字列リテラル(f-string) の場合結果文字列 = f'{変数:,}'
str.format() の場合
結果文字列 = '{num:,}'.format(num=変数)
- 「num」は任意の名称に変更可能です。
サンプルコード
intValue1 = 123
intValue2 = 123456789
# フォーマット済み文字列リテラル(f-string) の場合
print('-- f-string を使用 --')
print(f'{intValue1:,}')
print(f'{intValue2:,}')
# 結果
# 123
# 123,456,789
# str.format() の場合
print('')
print('----- str.format()を使用 -----')
print('{n:,}'.format(n=intValue1))
print('{n:,}'.format(n=intValue2))
# 結果
# 123
# 123,456,789
- 6行目: 「intValue1」は3桁に満たないため、'123' が出力されます。
- 7行目: 「intValue2」は3桁以上あるため、'123,456,789' が出力されます。
- 15行目: str.format() を使用した場合です。'123' が出力されます。
- 16行目: '123,456,789' が出力されます。
カンマ区切り + 右揃え
右揃えにするには フォーマットに「:>桁数,」を指定します。フォーマット済み文字列リテラル(f-string) の場合
結果文字列 = f'{変数:>桁数,}'
結果文字列 = '{num:>桁数,}'.format(num=変数)
サンプルコード
intValue1 = 123
intValue2 = 123456789
# フォーマット済み文字列リテラル(f-string) の場合
print('')
print('----- 右揃え(f-string) -----')
print(f'{intValue1:>20,}')
print(f'{intValue2:>20,}')
# 結果
# 123
# 123,456,789
# str.format() の場合
print('')
print('----- 右揃え(str.format) -----')
print('{n:>20,}'.format(n=intValue1))
print('{n:>20,}'.format(n=intValue2))
# 結果
# 123
# 123,456,789
検証環境
- Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.906 Experience: Windows Feature Experience Pack 120.2212.551.0