问题非常直截了当。 请注意以下代码:
import time, datetime
timer = datetime.datetime.now().strftime('%H:%M:%S')
print timer + " This is a test"
time.sleep(5) # 5 seconds until next statement
print timer + " Test after 5 seconds, so the timer should've changed"
执行代码后的结果:
13:22:07 This is a test
13:22:07 Test after 5 seconds, so the timer should've changed
正如您在结果中看到的那样,计时器的睡眠时间相同。 如果我们在这里谈论会议记录,我会接受它,但代码结果中的秒数保持不变。
我们如何使用一次执行一条语句后动态更改的计时器?
答案 0 :(得分:1)
当您将datetime.datetime.now().strftime('%H:%M:%S')
timer
变量当前时间分配给timer
变量时。
因此,在5秒之后,只需将timer
变量重新分配给当前时间[5秒后]
试试这个
import time, datetime
timer = datetime.datetime.now().strftime('%H:%M:%S')
print timer + " This is a test"
time.sleep(5) # 5 seconds until next statement
timer = datetime.datetime.now().strftime('%H:%M:%S')
print timer + " Test after 5 seconds, so the timer should've changed"
答案 1 :(得分:0)
请勿再次使用timer
。而是再次使用datetime.datetime.now().strftime('%H:%M:%S')
。这将生成一个带有时间的新字符串。将字符串分配给timer
后,它不会自动更改。
以下内容应该有效:
import time, datetime
print datetime.datetime.now().strftime('%H:%M:%S') + " This is a test"
time.sleep(5) # 5 seconds until next statement
print datetime.datetime.now().strftime('%H:%M:%S') + " Test after 5 seconds, so the timer should've changed"
答案 2 :(得分:0)
在您的代码中,timer
只是一个包含运行代码时当前时间值的字符串。你只需要打印两次,中间睡5秒钟。但这不会改变其价值。
每次想要刷新时间时,您需要重新运行该行:datetime.datetime.now().strftime('%H:%M:%S')
。