Pythonで文字列(str)、数値(int)をゼロ埋め(ゼロパディング)したい。
計算するのにゼロ埋めする必要は無いが、表示する場合は複数の値の桁数を合わせるためにゼロ埋めしたいこともあるだろう。
今回はPythonで文字列、数値をゼロ埋め(ゼロパディング)する方法について紹介する。
この記事を書いている人
記事を読むメリット
Pythonで文字列、数値をゼロ埋め(ゼロパディング)する方法がわかる
Pythonで文字列、数値をゼロ埋め(ゼロパディング)する方法
Pythonで文字列、数値をゼロ埋めする方法には以下のようなものがある。
ゼロ埋めする方法
各方式について以下のデータを使って解説していく。
# 数値 num1 = 1 num2 = 12 num3 = 123 print(num1) print(num2) print(num3) # 1 # 12 # 123
zfill()で右寄せゼロ埋めする
zfill()
は右寄せゼロ埋めするための関数。
str.zfill(width)
長さが width になるよう ASCII '0' で左詰めした文字列のコピーを返します。先頭が符号接頭辞 ('+'/'-') だった場合、 '0' は符号の前ではなく 後 に挿入されます。width が len(s) 以下の場合元の文字列を返します。
この説明にあるように zfill()
文字列(str)型で使用できる。
str_num1 = str(num1).zfill(3) print(str_num1) # 001
整数(int)型に使用するとエラーになる。
num1.zfill(3) # AttributeError: 'int' object has no attribute 'zfill'
zfill()
を使っていれば十分ですねrjust(), ljust(), center()で任意の位置に寄せる
rjust()
, ljust()
, center()
で任意の位置に寄せることもできる。
str.rjust(width[, fillchar])¶
width の長さをもつ右寄せした文字列を返します。パディングには fillchar で指定された文字(デフォルトでは ASCII スペース)が使われます。 width が len(s) 以下の場合、元の文字列が返されます。
# rjust, ljust, center str_num2 = str(num2) print(str_num2) # 12 print(str_num2.rjust(4,"0")) print(str_num2.ljust(4,"0")) print(str_num2.center(4,"0")) # 0012 # 1200 # 0120
第2引数を 0
以外の文字で指定すればゼロ以外の文字で埋めることもできる。
print(str_num2.rjust(4,"x")) # xx12
format()で書式変換する
format()
で書式変換することもできる。
format(数値,"書式")
とすると指定した書式の形式で表示される。
06
は10進数で6桁。
06f
は小数点以下6桁表示。
06x
は16進数で6桁表示。
#format print(format(num3,"06")) print(format(num3,"06f")) print(format(num3,"06x")) # 000123 # 123.000000 # 00007b
他にも "文字列 {:書式}".format(変数)
だと {}
の中に変数を当て込んだ文字列を作ることができ、さらに {}
の中で指定した書式になる。
print("zero padding : {:06}".format(num3)) # zero padding : 000123
format()
については以前の記事でも触れているので参考にしてほしい。
あわせて読みたい
まとめ
今回は「Pythonで文字列、数値をゼロ埋め(ゼロパディング)する方法」について紹介した。
やり方は以下の通り。
ゼロ埋めする方法
他にもやり方はあるが、ゼロ埋めするだけであれば zfill()
を使っておけば問題無い。
Pythonのコードが出来上がったら次は定期的に実行させる環境に移してコードを実行すると思う。
ランニングコストをかけてネット上に実行環境を作るのもありだが、小型PCを購入してランニングコストを下げるのも1つの手かと思われる。
小型PCの魅力とオススメの機種について書いた記事があるので、もしよければ参考にして欲しい。
あわせて読みたい