Почему и как работает многострочный ввод в Python - PullRequest
0 голосов
/ 26 сентября 2018

Прежде чем вы сообщите мне о дубликате, позвольте мне связать похожие темы, в которых говорится, как написать код, но не говорите, как он работает:

Теперь код для чтения нескольких строк:

'''
input data:
line 1
line 2
line 3
'''

line_holder = []

while True:
    line = input("\nPlease paste here lines :\n")
    if line:
        line_holder.append(line)
    else:
        break
for line in line_holder:
    print(line)

Как я понимаю:

  • цикл будет повторяться до тех пор, пока оператор "break"
  • при вводе не вставит несколько строк, которые хранятся в какой-то очереди
  • если во входной очереди есть что-то для работы с
  • добавить первое значение из этой очереди в список
  • если ничего нет, уничтожить цикл с помощью "break"
  • наконец, выведите то, что мы добавили из входных данных очереди в список

Итак, если есть очередь входных данных, как еще я могу добраться до нее?Как он хранится на компьютере и зачем мне нужен список для его просмотра?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

So if there is a queue of inputs, how else can I reach it?
Как написано, ваш цикл не обращается к очереди - input принимает ввод из stdin ... обычноданные, введенные пользователем с клавиатуры.

How is it stored on the computer ...?
Предположим, что вы ссылаетесь на несуществующую очередь (см. выше), но когда вы добавляете line в список, вы сохранение этой строки в списке.

... and why do I need to build list, to see it?
Вы не можете - вы можете просто напечатать строку в см. , но если вы хотите использоватьэти данные позже вы должны поместить в какой-то контейнер, и список будет удобен.

0 голосов
/ 26 сентября 2018

Вот краткое изложение всего этого. Первая строка (начиная с line_holder = []) объявляет line_holder как массив, когда вам нужно добавить строки.

Затем значение while делает его бесконечным циклом (если не указано иное внутри цикла)

Внутри цикла находится вход, который назначается переменной 'line'

Затем он проверяет, есть ли в строке что-либо (если строка),если это так, он добавляет содержимое 'line' в массив, который был объявлен уже как line_holder.

Однако, если в строке (else) ничего нет, он прерывает цикл, который затем запускает цикл forдля строки в line_holder, которая просто присваивает первой, затем второй и т. д. строке переменную строку и затем печатает ее, пока в line_holder не останется ни одного места.

Надеюсь, это очистило еедля вас любые вопросы просто добавьте комментарий.

...