ゼロパディングとは?
ゼロパディング(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つの方法があります。
- %-formatting
- str.format()
- f-strings
ここでは、今回使用した2. の方法だけを解説することにします。
フォーマット指定子(format specifier)
先ほどの例「padded_num = '{:02d}'.format(num)」を見てください。
{}の中が空っぽではなく {:02d}
'{:02d}'
は、フォーマット指定子(format specifier)と呼ばれる文字列フォーマットの一部で、以下のような意味を持ちます。
{}
- 埋め込む値を指定するためのフィールド(field)です。
:
- フィールドのフォーマット指定子を開始するための記号です。
0
- フィールドの幅が指定された場合に、足りない桁を0で埋めることを指定するフラグです。
2
- フィールドの幅を指定します。ここでは2桁を指定しています。
d
- 埋め込む値が整数であることを指定します。
このフォーマット指定子を使用することで、format()
メソッドに渡された整数値が、2桁の幅を持つ文字列に変換されます。
2桁に足りない部分は、0
で埋められます。
たとえば、num
が5
であった場合、'{:02d}'.format(num)
は文字列'05'
を返します。
また、num
が12
であった場合には、文字列'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'
に変換されます。