Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python2.7 While循环时间_Python - Fatal编程技术网

Python2.7 While循环时间

Python2.7 While循环时间,python,Python,我的程序打印一个大约7次。如何使它只打印一次?您的计算机速度太快了 它使用当前时间,测试当前秒数是否为1,然后再次测试。由于它速度如此之快,它可以在不到一秒钟内完成这项工作,因此您可以获得更多的输出行 使其在每次迭代后等待: while True: now = datetime.datetime.now() if now.second == 1: print "One" 这个程序大部分时间都会休眠。如果您想让它做任何有用的事情,它将是一个不同的程序。如何存储以前

我的程序打印一个大约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"
        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