Вывод последовательности введенных данных по окончанию ввода
На вход программе подается последовательность слов, каждое слово на отдельной строке.
Концом последовательности является слово «КОНЕЦ» (без кавычек).
Напишите программу, которая выводит члены данной последовательности.
Вот что я пробовал:
a = input()
while a != 'КОНЕЦ' and a != 'конец':
print(a)
a = input()
Ответы (3 шт):
Автор решения: Namerek
→ Ссылка
Для python 3.8 и выше
result = []
while not (a := input('Введите слово: ')).lower() == 'конец':
result.append(a)
print(*result, sep='\n')
Для версий python 3 - 3.7
result = []
a = input('Введите слово: ')
while a.lower() != 'конец':
result.append(a)
a = input('Введите слово: ')
print(*result, sep='\n')
Автор решения: MarianD
→ Ссылка
Ваш код почти правильный, только
вместо немедленного вывода введенного слова (командой
print(a)в цикле)
нужно- слова сначала только сохранять (напр. в списке)
- и только после введения всех слов (т.е. окончания вашего цикла) их выводить на экран:
words = [] # сначала пустой список
a = input()
while a != 'КОНЕЦ' and a != 'конец':
words.append(a) # здесь разница
a = input()
for word in words: # вывод сохраненных слов
print(word)
Автор решения: Arseniks
→ Ссылка
В задание чётко не указаны многие детали, но если следовать описанию, то:
input_words = []
while (a := input()) != 'КОНЕЦ': # чётко сказано, что концом ввода является только слово «КОНЕЦ» большими буквами, а слово «конец» вполне может быть частью последовательности
input_words.append(a)
print(*input_words) # формат вывода не описан, поэтому вывожу через пробел
Также не сказано, является ли слово «КОНЕЦ» частью последовательности, но я подразумеваю, что нет, так как это команда