title: Validating user input strings in Python
body: <p>So I've searched just about every permutation of the words "string", "python", "validate", "user input", and so on, but I've yet to come across a solution that's working for me.</p>
  
  <p>My goal is to prompt the user on whether or not they want to start another transaction using the strings "yes" and "no", and I figured that string comparison would be a fairly easy process in Python, but something just isn't working right. I am using Python 3.X, so input should be taking in a string without using raw input, as far as I understand.</p>
  
  <p>The program will always kick back invalid input, even when entering 'yes' or 'no', but the really weird thing is that every time I enter a a string > 4 characters in length or an int value, it will check it as valid positive input and restart the program. I have not found a way to get valid negative input.</p>
  
  <pre><code>endProgram = 0;
  while endProgram != 1:
  
      #Prompt for a new transaction
      userInput = input("Would you like to start a new transaction?: ");
      userInput = userInput.lower();
  
      #Validate input
      while userInput in ['yes', 'no']:
          print ("Invalid input. Please try again.")
          userInput = input("Would you like to start a new transaction?: ")
          userInput = userInput.lower()
  
      if userInput == 'yes':
          endProgram = 0
      if userInput == 'no':
          endProgram = 1
  </code></pre>
  
  <p>I have also tried</p>
  
  <pre><code>while userInput != 'yes' or userInput != 'no':
  </code></pre>
  
  <p>I would greatly appreciate not only help with my problem, but if anyone has any additional information on how Python handles strings that would be great.</p>
  
  <p>Sorry in advance if someone else has already asked a question like this, but I did my best to search.</p>
  
  <p>Thanks all!</p>
  
  <p>~Dave</p>