Когда я впервые увидел ваш вопрос, я прочитал «команда ввода» как «команда ввода», а не как «функция ввода ()».Теперь я предполагаю, что вы собираете данные из командной строки.
Проблема с вводом данных с символами новой строки заключается в следующем: когда вы прекращаете принимать ввод?Следующий пример обходит это, ожидая, пока пользователь нажмет ctrl-d .Это вызывает исключение в функции raw_input()
, а затем прерывает цикл while.
text = ''
# keep looping forever
while True:
try:
# grab the data from the user, and add back the newline
# which raw_input() strips off
text += raw_input() + "\n"
except EOFError:
# if you encounter EOF (which ctrl-d causes) break out of the loop
break
# print the text you've gathered after a dashed line
print "\n------------\n" + text
Очевидно, вы захотите предупредить вашего пользователя, что ему придется использовать ctrl-d чтобы прекратить ввод текста, что может быть немного неудобно - но если они уже находятся в командной строке, это не должно быть так плохо.
Кроме того, здесь я использовал raw_input()
,который собирает данные, но не exec()
, как input()
.Если вы хотите выполнить результаты, вы можете просто заменить вызов print()
на:
exec(text)
, чтобы получить аналогичные результаты.