Почему все значения отображаются как True, когда я набираю цикл while?
В настоящее время я изучаю моржа := , и когда я делаю это кодирование и добавляю в список, а затем печатаю его, появляется список со всеми элементами True.
foods = []
while food := input("what food do you like: ") != 'quit':
foods.append(food)
enter code here
print(foods)
1 ответ
Присваивание оператора моржа имеет более низкий приоритет по сравнению с операторами отношения. Итак, говоря:
food := input("what food do you like: ") != 'quit':
Оценивается как
food = <result of (input("what food do you like: ") != 'quit')>
И пока ввод не
quit
он всегда возвращается, вызывая все значения
food
быть и продукты, чтобы быть список всех
True
.
Вы можете попробовать использовать:
(food := input("what food do you like: ")) != 'quit':