On Mon, Oct 13, 2014 at 4:21 AM, Shiva <shivaji...@yahoo.com.dmarc.invalid> wrote: >> The loop will continue while either part is true - that's what "or" >> means. Is that what you intended it to be doing? >> >> ChrisA >> > > > Yes......however, the second part of the or condition doesn't get evaluated. > So if I enter a 'y' - I expect the second part to evaluate and the loop to > break - but that doesn't seem to happen.
Break it down into separate parts and have a look at what's happening. while ans.lower() != 'yes' or ans.lower()[0] != 'y': ans = input('Do you like python?') print("ans.lower() = {!r}; first cond = {!r}, second cond {!r}, disjunction {!r}".format( ans.lower(), (ans.lower() != 'yes'), (ans.lower()[0] != 'y'), (ans.lower() != 'yes' or ans.lower()[0] != 'y') )) The while loop will continue so long as the disjunction is True. See what it's actually doing. This is fundamental Boolean logic, a basic skill of programming. You're going to need to master this. Look at the different pieces, and get your head around what the 'or' operator actually does. ChrisA -- https://mail.python.org/mailman/listinfo/python-list