在KeyboardInterrupt被使用一次后禁用它


Cont = 1
while Cont == 1:
    try:
        while Cont == 1:
            counter = counter + 0.1
            counter = round(counter, 1)
            print(counter)
            time.sleep(0.1)
            if counter == crashNumber:
                Cont = 0
    except KeyboardInterrupt:
        Multiplier = counter

在这里,计数器将继续计数,直到它达到crashNumber,当Ctrl + C被按下时,它将获取counter所在的数字,并将其用于Multiplier稍后使用。

但是我只想让用户有机会按一次,然后它被禁用。有什么办法可以做到吗?

无论您是否想要,KeyboardInterrupt异常都将被抛出:那么,解决方案是在except块中以不同的方式处理异常。我选择的实现将使用一个简单的布尔值,以True开始,并在第一次中断时设置为False:

import time
allow_interrupt = True
while True:
    try:
        time.sleep(1)
        print ('...')
    except KeyboardInterrupt:
        if allow_interrupt:
            print ('interrupted!')
            allow_interrupt = False

让我知道这是否符合您的用例

相关内容

  • 没有找到相关文章

最新更新