Python2.7 While循环时间
我的程序打印一个大约7次。如何使它只打印一次?您的计算机速度太快了 它使用当前时间,测试当前秒数是否为1,然后再次测试。由于它速度如此之快,它可以在不到一秒钟内完成这项工作,因此您可以获得更多的输出行 使其在每次迭代后等待:Python2.7 While循环时间,python,Python,我的程序打印一个大约7次。如何使它只打印一次?您的计算机速度太快了 它使用当前时间,测试当前秒数是否为1,然后再次测试。由于它速度如此之快,它可以在不到一秒钟内完成这项工作,因此您可以获得更多的输出行 使其在每次迭代后等待: while True: now = datetime.datetime.now() if now.second == 1: print "One" 这个程序大部分时间都会休眠。如果您想让它做任何有用的事情,它将是一个不同的程序。如何存储以前
while True:
now = datetime.datetime.now()
if now.second == 1:
print "One"
这个程序大部分时间都会休眠。如果您想让它做任何有用的事情,它将是一个不同的程序。如何存储以前用于打印的值
while True:
now = datetime.datetime.now()
if now.second == 1:
print "One"
time.sleep(59) # wait 59 seconds after success
time.sleep(1) # wait 1 second after each fail
我的第一个想法是按时睡觉。之后再睡觉(1),但那可能是有害的:你确定吗,大约7次?老实说,这个数字非常低。也就是说,计算机现在检查值大约需要0.14秒。顺便说一句,请更正你报价中的缩进。@Gandi,说得好。我的指纹比stdout能处理的多得多,所以有几千张。好吧,循环中总是可以有一个计数器。每次计数器变为某个值时,它都可以打印“1”并归零。这个值不难计算。只需将电脑时钟频率乘以60(一分钟内的秒数)。哦,在写这篇文章的时候,别忘了想想以前的汇编时代;)@甘地-在C64的基础上,一个590次迭代的空FOR循环花了整整一秒钟。你确定吗?上一个总是1而不是现在存储。上一个中的第二个,现在存储。时间。睡眠(2)#等待2秒还不够吗?(对于速度太慢的计算机来说…)再加上信任时间。睡眠有点愚蠢,因为它必须依赖于系统,所以它是出了名的不准确。你最好把这些时间减半。
previous = None
while True:
now = datetime.datetime.now()
if now.second == 1 and now.second != previous:
print "One"
previous = now.second # store the last value