不知道为什么会这样。我一定遗漏了一些明显的东西。
我正在尝试让计数器打印出类似 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
分支中所做的那样(其行为符合预期),为什么它在第二个分支中不服从?我不知道为什么它仍在打印完整的结果而不是截断的版本。