На основе вашей задачи я реализовал воспроизводимый пример. Здесь мы реализуем две глобальные переменные paused
и exit_loop
, далее мы создаём для них функции, которые позже назначим как горячие клавиши через модуль keyboard
, для проверки я реализовал метод zadacha1()
которая просто возвращает отметку от времени, код выглядит следующим образом:
import keyboard
import datetime
import time
def zadacha1():
#print hello with date and time now
time.sleep(1)
print("отметка времени: ", datetime.datetime.now())
paused = False
exit_loop = False
def pause_loop():
global paused
paused = not paused
if paused:
print("\npaused = True\n")
else:
print("\npaused = False\n")
def exit_program():
global exit_loop
exit_loop = True
print("\nexit_loop = True\n")
# Устанавливаем сочетание клавиш для паузы
keyboard.add_hotkey('f5', pause_loop)
keyboard.add_hotkey('f6', exit_program)
while True:
if not paused:
# Ваш код для выполнения задачи
zadacha1()
if exit_loop:
print('\nПрограмма завершена\n')
break
Результат:
отметка времени: 2023-06-13 08:56:46.483409
отметка времени: 2023-06-13 08:56:47.484627
отметка времени: 2023-06-13 08:56:48.485523
отметка времени: 2023-06-13 08:56:49.485673
отметка времени: 2023-06-13 08:56:50.485943
paused = True
отметка времени: 2023-06-13 08:56:51.486116
paused = False
отметка времени: 2023-06-13 08:56:56.388918
отметка времени: 2023-06-13 08:56:57.389715
отметка времени: 2023-06-13 08:56:58.390017
отметка времени: 2023-06-13 08:56:59.390176
отметка времени: 2023-06-13 08:57:00.391006
отметка времени: 2023-06-13 08:57:01.391129
exit_loop = True
отметка времени: 2023-06-13 08:57:02.391734
Программа завершена
Сначала мы нажали на клавишу f6
воспроизведя паузу, учитывайте что после нажатия инструкция будет воспроизведена последний раз. Далее мы нажимаем f5
для завершения программы путём вызова break
, после нажатия так же цикл будет воспроизведен один раз.