在python中,输入后如何结束倒数计时

时间:2019-12-02 03:43:14

标签: python multithreading input timeout

说明:现在,我已经完成了输入和倒数,这两个操作是同时执行的,但是我想这样实现:

(1)当我在倒数计时中没有输入任何内容时,它将在倒数计时后执行另一个功能

(2)当我在倒数计时结束之前输入内容时,倒数计时将暂停,然后将执行另一个功能

我的代码如下:

import time
from threading import Thread


def waitinput():

    wait_input_str = input("Please enter your account:\n")
    print(wait_input_str)


thd = Thread(target=waitinput)
thd.daemon = True
thd.start()
for i in reversed(range(1, 11)):
    print("\rcountdown:{}second".format(i), end="")
    time.sleep(1)
# ###########################################

任何人都知道,请回复我 谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用isAlive()方法检查线程是否已终止。

在您的情况下:

import time
from threading import Thread


def waitinput():

    wait_input_str = input("Please enter your account:\n")
    print(wait_input_str)


thd = Thread(target=waitinput)
thd.daemon = True
thd.start()
for i in reversed(range(1, 11)):
    if not thd.isAlive():
        # Execute 2
        print("\nCountdown has stopped")
        break
    print("\rcountdown:{}second".format(i), end="")
    time.sleep(1)

if thd.isAlive():
    # Execute 1
    print("\nCountdown has ended")

答案 1 :(得分:0)

谢谢您的答复,但我的声誉不到50。