#python #input
Мне нужно составить список из строк, построчно вводимых с клавиатуры. Например, дано: 20 30 005 Я должен получить список из строк: ["20", "30", "005"]. Заранее не известно, сколько строк будет введено. Я не понимаю, как отследить конец ввода. Если я буду писать так: a = [] while input(): a.append(input()) то получается, что первый инпут я не записываю в список, а второй записываю, и если второго инпута нет, то будет ошибка, так как нечего записывать в список. Подскажите, как сделать. Я только начал изучать Питон (Пайтон). Благодарю заранее за любой совет.
Ответы
Ответ 1
Попробуйте такой способ: a = [] while True: try: a.append(input()) except EOFError: break print(a) Когда вывод закончится и input() не сможет считать очередную строку, то породится исключение EOFError, которое можно поймать и обработать. В этот момент поток ввода завершится.Ответ 2
a=[] i=True while i: i=input() if i: a.append(i) Если оставить строку пустой, ввод прекратится.Ответ 3
Можно таким способом: In [9]: while True: ...: inp = input() ...: if not inp: break ...: array.append(inp) Цикл остановится если ввод будет пуст.Ответ 4
Вы можете применить функцию input() из стандартного модуля fileinput, которая читает «до бесконечности» ввод из стандартного потока - пока не встретится признак конца файла (EOF - End of File): import fileinput a = [] for s in fileinput.input(): a.append(s.strip()) Ввод окончится симуляцией признака конца файла - нажатием на Ctrl+D (вместо ввода дальнейшего числа) - см. тоже этот ответ на вопрос Признак конца ввода Python. Метод strip() применяется для удаления символа \n в конце введенных строк.
Комментариев нет:
Отправить комментарий