使用一次后禁用 KeyboardInterrupt
Disabling KeyboardInterrupt after it has been used once
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
让我知道这是否解决了您的用例。
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
让我知道这是否解决了您的用例。