So my problem is a bit different. I'm not able to understand why the code is working.
When I enter "y" or "n" as a response, the whole condition choice != "y" and choice != "n" becomes False, and hence the while loop stops. But if that logic is true, then it should stop even if any response other than "y" or "n" is entered, since that would make the condition false too. I'm perplexed!
while choice != "y" and choice != "n": choice = raw_input("Sorry, I didn't catch that. Enter again: ")