Skip to content
Advertisement

List has an issue

My code is:

foods2 = list()
while food2 := input("Which food do you like ? ") != "quit":
    foods2.append(food2)
print(foods2)

I want the output to be a list from my inputs.

Why is the output [True, True, True] when there are three inputs before typing ‘quit’?

Advertisement

Answer

Looking at Operator precedence, the assignment operator := is the lowest of them all. That means that python evaluated the != first and assigned its boolean result to food2. You can use parentheses to change evaluation order:

foods2 = list()
while (food2 := input("Which food do you like ? ")) != "quit":
    foods2.append(food2)
print(foods2)
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement