Как поменять строки местами?
Помогите, пожалуйста, реализовать следующую программу:
Необходимо подавать строки на вход по очереди, а по завершению подачи строк, они должны быть выведены в обратном порядке.
Собственно два вопроса:
Можно ли как-то по-другому реализовать выход из циклического ввода, кроме как по слову?
Как можно поменять строки местами?
Вот мой кусочек кода:
a = ''
while True:
l = input()
if l == 'end':
break
else:
a += l + '\n'
print(a)
Заранее большое спасибо!
Ответы (2 шт):
Можно реализовать рекурсией:
def f():
s = input()
if s != 'end':
f()
print(s)
f()
Можно ли как-то по-другому реализовать выход из циклического ввода, кроме как по слову?
Можно определять конец ввода по пустой строке. Или заранее указать количество строк (первым аргументом скрипту).
-
Можно ли как-то по-другому реализовать выход из циклического ввода, кроме как по слову?
Обычный подход — тест на пустую строку (пользователь уже не задает ничего, только нажмёт клавишу Enter).
-
Как можно поменять строки местами?
Методом
.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)