MENU

【Python】文字列を0埋め(ゼロパディング)する方法を解説

文字列を0埋め(ゼロパディング)する方法は、データ処理やファイル名の整形など、様々な場面で役立ちます。

この記事では、プログラミング初心者にもわかりやすく、Pythonで文字列を0埋めする方法を解説します。

目次から探す

Pythonでの文字列の0埋め(ゼロパディング)方法

Pythonで文字列を0埋め(ゼロパディング)する方法には、いくつかの方法があります。

この記事では、以下の4つの方法を紹介します。

  1. str.format()を使った方法
  2. f-stringを使った方法
  3. str.zfill()を使った方法
  4. 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

この例では、numwidthの変数を直接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

この例では、numstr() で文字列に変換した後、 zfill() で0埋めを行っています。

その結果、4200042という文字列に変換されます。

負の数値の扱い

負の数値を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

この例では、numstr() で文字列に変換した後、 ljust()rjust() で0埋めを行っています。

42000
00042

左寄せや右寄せは、 ljust()rjust() の関数名で指定されています。

上記の例では、左寄せがresult_left、右寄せがresult_rightになっています。

1 2

目次から探す