Jupyter Ceil вышел из циклического ввода - PullRequest
0 голосов
/ 13 апреля 2020

Я пишу ответ на это упражнение:

Напишите программу Python, которая многократно считывает строки из стандартного ввода до возникновения EOFError, а затем выводит эти строки в обратном порядке (пользователь можно указать конец ввода, набрав ctrl-D).

Код, который я пишу, следующий:

data = []
try:
    while True:
        data.append(input())

except EOFError:
    for i in range(len(data)-1,-1,-1):
        print(data[i])

Если я запускаю скрипт в pycharm (ctrl + shift + F10), я можно использовать ctrl + D, чтобы выйти. Однако, когда я запускаю его в Jupyter Ceil, я не знаю, как выйти из этого цикла без отключения всего ядра!

Кто-нибудь может мне это объяснить? Должен ли я каким-то образом пересмотреть код?

1 Ответ

0 голосов
/ 13 апреля 2020

Вы можете добавить дополнительный перехват для прерывания клавиатуры и отправить прерывание через Kernel-> Interrupt

data = []
try:
    while True:
        data.append(input())

except (EOFError, KeyboardInterrupt):
    for i in range(len(data)-1,-1,-1):
        print(data[i])
...