On Mon, Dec 08, 2014 at 01:47:39AM +0000, Alan Gauld wrote: > > FirstChoice = input ("Enter the item of your choice: ") > > if FirstChoice == 'Coke' or 'Pepsi' or 'Water': > > print ("That will be a total of £",drinks) > > The or statements don't do what you think. > > Python sees it like: > > if FirstChoice == ('Coke' or 'Pepsi' or 'Water'): > > So evaluates the bit in parens first which results in a boolean value of > True.
Actually it sees it as: if ((FirstChoice == 'Coke') or 'Pepsi' or 'Water'): which will always evaluate as True. *Technically* it will evaluate as either True or 'Pepsi', which is a truthy value, so the if block will always run. What we actually want is one of these: # The long way if (FirstChoice == 'Coke') or (FirstChoice == 'Pepsi') or (FirstChoice == 'Water'): # The short way if FirstChoice in ('Coke', 'Pepsi', 'Water'): -- Steven _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor