文字列を0埋め(0パディング)する方法は、データ処理やファイル名の整形など、様々な場面で役立ちます。
この記事では、プログラミング初心者にもわかりやすく、Pythonで文字列を0埋めする方法を解説します。
Pythonでの文字列の0埋め(0パディング)方法
Pythonで文字列を0埋め(0パディング)する方法には、いくつかの方法があります。
この記事では、以下の4つの方法を紹介します。
- str.format()を使った方法
- f-stringを使った方法
- str.zfill()を使った方法
- str.ljust()とstr.rjust()を使った方法
それぞれの方法について、基本的な使い方と左寄せ・右寄せの指定方法を解説します。
str.format()
を使った方法
基本的な使い方
str.format()
を使って文字列を0埋めする方法は以下のようになります。
num = 42
width = 5
result = "{:0{width}d}".format(num, width=width)
print(result) # 00042
00042
この例では、num
という変数に数値を代入し、width
という変数に0埋め後の文字列の幅を指定しています。
"{:0{width}d}"
というフォーマット文字列を使って、 str.format()
で0埋めを行っています。
左寄せ・右寄せの指定
左寄せや右寄せを指定するには、以下のように<
や>
を使います。
num = 42
width = 5
result_left = "{:<0{width}d}".format(num, width=width)
result_right = "{:>0{width}d}".format(num, width=width)
print(result_left) # 42000
print(result_right) # 00042
42000
00042
f-string
を使った方法
f-stringとは、文字列の先頭にf
を記述することができる文字列で、任意の文字で余白を埋めたり、変数を埋め込むといったフォーマッティングが行なえます。
num = 3
result = f"num={num}"//変数numが文字列内で展開される
print(result)
num=3
基本的な使い方
f-stringを使って文字列を0埋めする方法は以下のようになります。
num = 42
width = 5
result = f"{num:0{width}d}"
print(result) # 00042
00042
この例では、num
とwidth
の変数を直接f-string内に埋め込んで、0埋めを行っています。
左寄せ・右寄せの指定
左寄せや右寄せを指定するには、以下のように<
や>
を使います。
num = 42
width = 5
result_left = f"{num:<0{width}d}"
result_right = f"{num:>0{width}d}"
print(result_left) # 42000
print(result_right) # 00042
42000
00042
str.zfill()
を使った方法
str.zfill()
とは、文字列が任意の文字数になるように、足りない文字を0で補う関数です。
基本的な使い方
str.zfill()
を使って文字列を0埋めする方法は以下のようになります。
num = 42
width = 5
result = str(num).zfill(width)
print(result) # 00042
00042
この例では、num
を str()
で文字列に変換した後、 zfill()
で0埋めを行っています。
その結果、42
が00042
という文字列に変換されます。
負の数値の扱い
負の数値を0埋めする場合、以下のようになります。
num = -42
width = 5
result = str(num).zfill(width)
print(result) # -0042
-0042
負の数値の場合でも符号を考慮して0埋めされるため、00-42
のようなことにはならず、正しい書式で0埋めできます。
str.ljust()
とstr.rjust()
を使った方法
str.ljust()
とstr.rjust()
はそれぞれ左詰め・右詰めできる関数です。
基本的な使い方
str.ljust()
とstr.rjust()
を使って文字列を0埋めする方法は以下のようになります。
num = 42
width = 5
result_left = str(num).ljust(width, '0')
result_right = str(num).rjust(width, '0')
print(result_left) # 42000
print(result_right) # 00042
この例では、num
を str()
で文字列に変換した後、 ljust()
や rjust()
で0埋めを行っています。
42000
00042
左寄せや右寄せは、 ljust()
と rjust()
の関数名で指定されています。
上記の例では、左寄せがresult_left
、右寄せがresult_right
になっています。