Как поменять строки местами?

Помогите, пожалуйста, реализовать следующую программу:

Необходимо подавать строки на вход по очереди, а по завершению подачи строк, они должны быть выведены в обратном порядке.

Собственно два вопроса:

  1. Можно ли как-то по-другому реализовать выход из циклического ввода, кроме как по слову?

  2. Как можно поменять строки местами?

Вот мой кусочек кода:

a = ''
while True:
    l = input()
    if l == 'end':
        break
    else:
        a += l + '\n'
print(a)

Заранее большое спасибо!


Ответы (2 шт):

Автор решения: nomnoms12

Можно реализовать рекурсией:

def f():
    s = input()
    if s != 'end':
        f()
        print(s)


f()

Можно ли как-то по-другому реализовать выход из циклического ввода, кроме как по слову?

Можно определять конец ввода по пустой строке. Или заранее указать количество строк (первым аргументом скрипту).

→ Ссылка
Автор решения: MarianD
  1. Можно ли как-то по-другому реализовать выход из циклического ввода, кроме как по слову?

    Обычный подход — тест на пустую строку (пользователь уже не задает ничего, только нажмёт клавишу Enter).

  2. Как можно поменять строки местами?

    Методом .reverse() списка — значит, надо сделать из заданных строк их список.


Всё вместе:

PROMPT = 'Введите очередное слово (или только нажмите клавишу Enter для окончания)'
lst = []

while True:
    word = input(PROMPT).strip()     # strip() удалит пробелы перед/за вводимым текстом
    if word:                         # не надо  «word == ''»,  но может быть
        lst.append(word)
    else:
        break;
        
lst.reverse()
for word in lst:
    print(word)
→ Ссылка