なぜこれが起こっているのか分かりません。明らかな何かが欠けているに違いありません。
カウンターにSMPTEコード(時:分:秒:フレーム(24fpsを想定))のようなものを出力させようとしています。
これまでのコード:
import time
s_time = time.time()
def format_time():
t = time.time() - s_time
if t < 1:
print '00:00:00:%02d' % int(t/0.041666666666666664)
elif t < 60:
t = str(t).split('.')
print '00:00:%02d:%02d' % (int(t[0]), int(int(t[1][:4])/0.041666666666666664) )
while True:
format_time()
期間が1秒を超えてelif
ブランチに入るまで、最初はすべてうまくいくようです。秒は正常に出力されますが、フレームは計算の複数桁の結果全体を出力します。書式設定演算子が%02d
、最初のブランチ(期待どおりに動作する)の場合と同じように指定してif
いるとすると、なぜ2番目のブランチに従わないのでしょうか。切り捨てられたバージョンではなく、完全な結果がまだ印刷されている理由を理解しようとして、私は途方に暮れています。