Итак, у вас есть список задач.
tasks = [dna, sorted, hidden1_test, hidden2_test, equation, parentheses, sorted3]
Вы не знаете, когда эти задачи закончатся, поэтому продолжайте проверять, пока они не будут завершены: while True:
Чтобы знать который еще работает, вы читаете строку из стандартного ввода.
line = stdin.readline().rstrip('\r\n')
см .: python 3.8.2, stdin
Если все задачи Закончив, вам нечего читать, вы прерываете время l oop и завершаете программу.
if line == '': break
# same as
if line == '':
break
В информационных целях мы хотим напечатать, какие задачи еще выполняются, а какие были INTE нарушено.
Эта задача все еще выполняется (имя задачи найдено в line
)?
Сначала мы используем регулярное выражение, которое инструмент для поиска шаблонов в тексте.
re.search(pattern, text) # Return true if it found something!
Поиграйте с RegExr , вы увидите, что это довольно круто.
Тогда, если задача не найденный (он закончен), мы добавляем INTE, чтобы обозначить, что он был прерван.
result = '' if re.search(task(), line) else 'INTE '
# Above is a ternary operator, which is the same as...
if re.search(task(), line) :
result = ''
else:
result = 'INTE'
Здесь мы используем то, что большинство людей называют троичным оператором * 103 7 *.
... и затем мы печатаем текст. task.__name__
- это просто название задачи. Скорее всего, ваш task
является объектом, и у этого объекта есть имя. Можно предположить, что имя вашей задачи может быть dna
, sorted
, hidden1_test
, ...