Есть ли эффективный способ вырваться из вложенного цикла, если пользователь просто предоставляет ввод в определенное время, которое они хотят разбить (например, нажать клавишу)? У меня есть условные операторы в самих циклах, которые я могу использовать для разбиения циклов, но если, например, я просто хочу остановить циклы в любое время, но все же хочу, чтобы остальная часть кода запускалась, есть ли простой способ сделать это ? Для выяснения мотивации, я хотел бы сделать что-то вроде:Нарушение вложенных циклов с пользовательским вводом
for x in xrange(1000):
for y in xrange(1000):
for z in xrange(1000):
print x,y,z #function of loop
if (user_has_pressed_key) == True: #a user input that
#can come at any time
#but there should NOT be
#a prompt needed for each iteration to run
break
else:
continue
break
else:
continue
break
Я рассматривал возможность использования необработанного ввода, но не хотел бы петлю ждать каждую итерацию для пользователя, поскольку там будут много итераций. Кажется, что есть proposed solutions when using different packages, но даже они, похоже, только для Windows. Я запускаю этот код на нескольких компьютерах, поэтому идеально хотел бы, чтобы он работал на разных ОС.
Возможно, вы захотите ознакомиться с стандартной библиотекой 'signal' для асинхронных событий. – AChampion
, пожалуйста, предоставьте минимальный рабочий пример – user2682863