如何在不使用time.sleep()函数的情况下进行3秒倒计时?



我需要一个函数开始倒计时从3到0的石头,布,剪刀游戏,使用网络摄像头来确定用户的选择。

我希望程序开始图像捕获,然后开始倒计时,并在倒计时达到0时捕获用户输入。我希望图像捕获在程序启动后立即在后台运行,然后倒计时激活一旦图像捕获运行,因为图像捕获需要几秒钟启动。

问题是time.sleep()停止了在后台运行的图像捕获,因此停止了捕获用户输入的程序,直到倒计时停止,这意味着倒计时将开始,一旦达到0,它将启动图像捕获,这将花费几秒钟。

目前,我的倒计时功能从零开始计数,并打印相同数字的多次迭代。

代码:

def countdown():
countdown_time = 3
start_time = time.time()
while (time.time() - start_time) < countdown_time:
print(round(time.time() - start_time))
if (time.time() - start_time) >= countdown_time:
break

理想情况下,它应该只是打印:

3
2
1

但是它打印的内容更像这样:

1
1
1
2
2
2
3
3
3

链接到我的GitHub仓库(https://github.com/luketl98/ComputerVisionProject.git)

我想这就是你要找的:

from time import sleep
def countDown():
for i in range(3, 0, -1):
print(i)
sleep(1)

countDown()

你说你不能使用time.sleep(),因为那个特定的函数不会启动程序,这是错误的。

最新更新