我编写了这段代码来进行倒计时:
def print_list(my_list):
print('\n'.join(my_list))
a = ['foo', 'bar', 'baz']
print_list(a)
那没有用。这不是错误。它什么都没发生,有人有主意吗?谢谢!
答案 0 :(得分:4)
您在设置time.time()
之后立即再次检查end
,并且只检查了一次,因此肯定不会在5.5秒后出现。如果要通过对代码进行最少的修改来做到这一点:
while time.time() < end:
pass
print('Time\'s up')
如果您对time.time()的调用未返回确切的微秒,则您不想检查==
。
如果要正确执行此操作,则应使用time.sleep(5.5)
。
答案 1 :(得分:2)
您正在比较是否相等,但是假设返回的时间戳与原始时间戳完全相同,外加5.5秒。除非您非常幸运,否则不会发生这种情况。另外,您在上一次检索后进行了 right 检查,并且在这两个语句之间没有5.5秒的可能。
您可以使用适当的方法或天真的方法来解决此问题。
处理此问题的正确方法是使用ng_flow.as_dict()
:
time.sleep(5.5)
像您的示例一样简单的实现方式:
import time
time.sleep(5.5)
print("Time's up!")
这将旋转一个空循环,直到经过请求的时间为止。我之所以这么称呼我,是因为您的程序将卡住所有可用的CPU资源,却无所事事,除了检查时钟和当前时间,直到5.5秒为止。在第一个示例中,它告诉操作系统“嘿,请在5.5秒内唤醒我”,其他进程可以在两者之间使用CPU。