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 - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor