Как я могу начать новый экземпляр input () после разрыва начального input () с исключением EOF? - PullRequest
0 голосов
/ 08 июля 2019

Мне нужно принять многострочный ввод от пользователя - работает с циклом while, но есть проблема с запуском другого input (), так как EOF «передается» новому вводу ()

Я пытался использовать комбинацию sys stdin и func (), но не уверен, почему это происходит.

while True: try: list = input() except EOFError: break input('input2:')

1 Ответ

1 голос
/ 08 июля 2019

1) Не используйте list в качестве имени переменной.Это зарезервированное слово в Python.
2) Вы можете поймать KeyboardInterrupt, который остановит цикл после Ctrl + C и EOFError, который поймает Ctrl + D:

while True:
    try:
        list = input()
    except (EOFError, KeyboardInterrupt):
        break
input('input2:')

В качестве альтернативы вы можете заправить цикл и позволить циклу завершиться при установленном условии:

my_input = input()

while my_input: # Break if nothing was inputted
    print(f"Inputed: {my_input}")
    my_input = input()

input('input2:')
...