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

Reply via email to