Reputation: 57
I'm not exactly sure why but when I execute this section of code nothing happens.
while (True) :
choice = str(input("Do you want to draw a spirograph? (Y/N) "))
if choice == 'n' or 'N' :
break
elif choice == 'y' or 'Y' :
<CODE>
else :
print("Please enter a valid command.")
choice = input("Do you want to draw a spirograph? (Y/N)")
Upvotes: 3
Views: 921
Reputation: 77053
It won't work because the 'N'
literal always evaluates to True
within your if
statement.
Your if
condition currently stands as if choice == 'n' or 'N' :
, which is equivalent to if (choice == 'n') or ('N')
, which will always evaluate to True
irrespective of the value of variable choice
, since the literal 'N'
always evaluates to True
.
Instead, use one of the following
if choice == 'n' or choice == 'N' :
if choice in 'nN' :
if choice in ('n', 'N') :
The same holds for your elif
block as well. You can read more about Truth Value testing here.
Upvotes: 12
Reputation: 1542
This expression doesn't do what you want:
choice == 'n' or 'N'
It is interpretted as this:
(choice == 'n') or 'N'
You might want to try this instead:
choice in 'nN'
Upvotes: 5