#python
Вопрос:
Я написал этот код, чтобы попробовать выражение присваивания:
foods= list()
while food := input("your food?:") != "q":
foods.append(food)
else:
print(foods)
но после ввода сучи и риса после запуска результат был
[True, True]
На самом деле ис не ожидал такого результата. Вы можете объяснить??
Ответ №1:
!=
Оператор имеет приоритет перед :=
оператором (фактически, каждый другой оператор имеет приоритет перед :=
ним ). Таким образом, условное условие заканчивается так
while food := (input("your food?:") != "q"):
скорее, чем
while (food := input("your food?:")) != "q":
Используйте вместо этого последнюю версию, и с вами все будет в порядке.
Ответ №2:
Порядок операций. Он добавляется input() != 'q'
, вот почему вы получаете True
. Вы можете изменить свой цикл на этот:
while (food := input("your food?:")) != "q":
Ответ №3:
Это добавление результата input("your food?:") != "q"
в список, а не ваших входных данных.