1
3

More than 3 years have passed since last update.

【Python】0で穴埋めするときに必要な桁数を計算する【メモ書き】

Posted at

logを高校で習ったときにlogっていつ使うねん!って思ってたら使いどきあったのでメモメモ。

import math

list = [1,2,3,4,5,6,7,8,9,10,11]

number_of_val = len(list)
number_of_padding_zero = math.ceil(math.log10(number_of_val))
format_pattern = '{:0'+ str(number_of_padding_zero) +'d}'

for i,val in enumerate(list):
  serial_number = format_pattern.format(i)
  print(serial_number)

実行結果:

00
01
02
03
04
05
06
07
08
09
10

連番でファイル出力するときに0で穴埋め(ゼロパディング)するということを想定。
テスト用なのでコード中のlistには数字入ってますが、ファイルパスとかが入ってると思ってください。
出力ファイル数を数えて、log10をとって切り上げ。1からとかではなく0から出力するといい感じになる。

format_pattern = '{:0'+ str(number_of_padding_zero) +'d}'
↑このコード、絶対ダメな気がするんだけどとりあえず動くからいいやってことで。
何かいい感じの書き方とかがあったらコメントで教えて下さい。
joinメソッドとか使えよって思う方もいるだろうけど、
個人的に+でつなぐ表記が大体の言語で共通して書けるので好きってだけです。

そういえばlog10って常用対数って言うんだったね。めっちゃ使うってことよね。
ふと調べてみたら常用対数をとって桁数数えるのふつうのコトだったわ。
いやでも、実際に使う機会ないと「桁数わかってどうするのか?」ってなるしさ。
あと、そもそも桁数を常用対数使ったら求められるコト完全に頭から抜けてたんだけど、
「対数使ったらいい感じになりそう!」ってなんとなく思って気づいたんだ。
むしろ褒めて()

1
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3