我试着写了一个小脚本,通过按回车键给出实际的系统时间。
如下图所示,输出的是18:51:16。等了8分钟后,按回车键,我先收到18:51:18,第二次按回车键,Idle显示的是真正的时间值。每次我等几分钟就会发生这种情况。这是一个无休止的循环,所以我试着用None或del命令重置now.strftime('%H %M %S')的值,但结果和之前一样。
import time
while True:
now = datetime.datetime.now()
text = input()
if text == "":
now.strftime('%H %M %S')
print(now.strftime('%H:%M:%S'))
else:
print("you typed some text before pressing enter")`
有什么办法吗?
衷心祝愿
在你的while循环中,你首先检索当前时间,然后等待用户的输入。用户可以等很久,甚至可以等上几天,当他们最终做出回应时,你的 now
变量将被使用。这样做的问题是 now
有旧的时间。
为了解决这个问题,把 now
在您的 input
. 这样,你就可以检索到用户按回车键时的当前时间。下面是一种可能的方法。
import time
while True:
text = input()
if text == "":
now = datetime.datetime.now()
print(now.strftime('%H:%M:%S'))
else:
print("you typed some text before pressing enter")`