ゼロパディング

ゼロパディングとは?

ゼロパディング(zero padding)とは、数字を表示する場合に、桁数が指定された桁数に達しない場合に、左側に0を詰めて桁数を揃えることを言います。

例えば4桁の表示桁数があり「5」を表示する場合:

  • 通常:
    • 「5」と表示される
  • ゼロパディング:
    • 「0005」と表示される

同様に、2桁の表示桁数があり「9」を表示する場合:

  • 通常:
    • 「9」と表示される
  • ゼロパディング:
    • 「09」と表示される
  • ゼロパディングは、数値の桁揃えが必要な場合に頻繁に使用される

たとえば、日付や時刻の表現や、ファイル名の生成や、データの整形などで利用されます。

Pythonでは、「文字列フォーマット」を使用して簡単にゼロパディングすることが可能です。

ゼロパディングの例:数値の場合

Pythonで数値の 5 を '05' のようにゼロパディングするには、文字列フォーマットを使用することができます。

具体的には、以下のように書くことができます。

num = 5
padded_num = '{:02d}'.format(num)
print(padded_num)  # 結果: '05'

文字列フォーマット

文字列フォーマット(string formatting)は、Pythonで文字列を生成するための方法の1つで、変数の値を文字列の中に埋め込むことができます。

文字列フォーマットを使用することで、より読みやすく、柔軟な出力が可能です。

Pythonで文字列フォーマットを使用する場合、主に3つの方法があります。

  1. %-formatting
  2. str.format()
  3. f-strings

ここでは、今回使用した2. の方法だけを解説することにします。

フォーマット指定子(format specifier)

先ほどの例「padded_num = '{:02d}'.format(num)」を見てください。

{}の中が空っぽではなく {:02d}

'{:02d}'は、フォーマット指定子(format specifier)と呼ばれる文字列フォーマットの一部で、以下のような意味を持ちます。

  • {}
    • 埋め込む値を指定するためのフィールド(field)です。
  • :
    • フィールドのフォーマット指定子を開始するための記号です。
  • 0
    • フィールドの幅が指定された場合に、足りない桁を0で埋めることを指定するフラグです。
  • 2
    • フィールドの幅を指定します。ここでは2桁を指定しています。
  • d
    • 埋め込む値が整数であることを指定します。

このフォーマット指定子を使用することで、format()メソッドに渡された整数値が、2桁の幅を持つ文字列に変換されます。

2桁に足りない部分は、0で埋められます。

たとえば、num5であった場合、'{:02d}'.format(num)は文字列'05'を返します。

また、num12であった場合には、文字列'12'を返します。

このように、フォーマット指定子を使用することで、数値を特定のフォーマットで文字列化することができます。

ゼロパディングの例:文字列の場合

'5'という文字列をゼロパディングする場合も、同様に文字列フォーマットを使用することができます。

具体的には、以下のように書くことができます。

s = '5'
padded_s = s.zfill(2)
print(padded_s)  # 結果: '05'

zfillメソッド

このコードでは、zfillメソッドを使用して、文字列sの左側に0を詰めて、2桁の文字列に変換しています。

zfillメソッドは、指定した長さに満たない場合は、文字列の左側に指定した文字(この場合は0)を詰めます。

この例では、2桁にするために、左側に0を詰める必要があるため、zfill(2)を呼び出しています。

結果として、文字列'5''05'に変換されます。

タイトルとURLをコピーしました