Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Построчный ввод на Python

#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 в конце введенных строк.

Комментариев нет:

Отправить комментарий