Продолжайте вызывать функцию input()
, пока строка, которую она считывает, не станет пустой. Используйте метод .split
(без аргументов = пробел в качестве разделителя). Используйте list-comp
, чтобы преобразовать каждый string
в int
и добавить его к вашему examList
.
Вот код:
examList = []
i = input()
while i != '':
examList.append([int(s) for s in i.split()])
i = input()
И с вашим вводом examList
это:
[[3], [2, 1], [1, 1, 0], [2, 1, 1], [4, 3, 0, 1, 2], [2], [1, 2], [1, 3]]
Вышеупомянутый метод предназначен для Python3
, который позволяет вам вызвать input()
и ничего не вводить (поэтому мы используем это как сигнал, чтобы проверить, что мы сделали - i != ''
).
Однако из документов мы видим, что в Python2
, пустая запись в input()
вызывает ошибку EOF
. Чтобы обойти это, я думаю, мы могли бы просто сделать так, чтобы многострочный ввод заканчивался при вводе строки, такой как: END
. Это означает, что вы должны остановить запись строкой 'END'
:
examList = []
i = raw_input()
while i != 'END':
examList.append([int(s) for s in i.split()])
i = raw_input()
Обратите внимание, что я использовал raw_input
as, чтобы не выполнять преобразование типов.
который работает так же, как указано выше.
person
Joe Iddon
schedule
25.02.2018