Как реализовать пока l oop в Python? - PullRequest
1 голос
/ 31 марта 2020

В основном мне нужно написать программу, которая принимает ввод от пользователя и сохраняет его в списке снова и снова, пока не будет передано слово "конец".

Пример ввода

Spanish
dog
bowl
end

Пример вывода

['spanish', 'dog', 'bowl']

Это то, что у меня есть до сих пор:

a = []
index = 0
i = 1
while i != 0:
    s = raw_input()
    if s == "end":
        i = 0
    else:
        a[index] = s
        index = index + 1
print (a)

Обратите внимание, что как часть назначения, в то время как l oop должен использоваться .

Ответы [ 3 ]

3 голосов
/ 31 марта 2020
words = []
while True:
    word = input()
    if word == 'end':
        break
    else:
        words.append(word)
print(words)

Пример

Spanish
dog
bowl
end
['Spanish', 'dog', 'bowl']
1 голос
/ 31 марта 2020

Если вы используете Python 3.8+, вы можете использовать эту замечательную новую функцию под названием выражения назначения , например, так:

lst = []
while (answer := input('item (type "end" to exit): \t')) != 'end':
    lst.append(answer)
print(lst)
0 голосов
/ 31 марта 2020

если вам нравится однострочное решение:

from itertools import takewhile, cycle

words = list(takewhile(lambda x: x != 'end', map(input, cycle(['type your item: ']))))

или:

words = list(takewhile(lambda x: x != 'end', map(input, cycle(['']))))
print(words)

вывод:

Spanish
dog
bowl
end
['Spanish', 'dog', 'bowl']
...