#python #python-3.x #keyboardinterrupt
#python #python-3.x #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
последующего использования.
Однако я хочу дать пользователю возможность нажать это только один раз, после чего оно отключено. Есть ли какой-либо способ, которым это можно сделать?
Комментарии:
1. Вы хотите, чтобы исключение не создавалось в первую очередь, или просто справиться с ним по-другому?
2. Я просто хочу, чтобы пользователь нажал ctrl c один раз, а затем запретил ctrl c что-либо делать после этого, я не знаю лучшего способа сделать это.
Ответ №1:
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
Дайте мне знать, если это касается вашего варианта использования.
Комментарии:
1. Вот и все! Большое вам спасибо!