title: simple while loop does not register input() the second time
body: <p>I'm making a playAgain function that asks if a player wants to play the game again. I've been looking at the code and I don't know why my first iteration doesn't work.</p>
  
  <p>The code does 3 things:</p>
  
  <ol>
  <li>If the user answers anything starting with 'y', it will return true. </li>
  <li>If the user answers anything starting with 'n', it will return false.</li>
  <li>If the user answers with anything else, it will loop.</li>
  </ol>
  
  <p>The code below will loop if not given a 'y' or 'n' answer, but answering with anything after the first loop will not break it. I can't figure out why.</p>
  
  <pre><code>def oldPlayAgain():
      print('Do you want to play again? (yes or no)')
      answer = input().lower()
      while True:
          if answer.startswith('y'):
              return True
          elif answer.startswith('n'):
              return False
          else:
              print ('That is not a valid answer.')
              print ()
              oldPlayAgain()
  </code></pre>
  
  <p>This one works. But it seems similar to the first one?</p>
  
  <pre><code>def playAgain():
      answer = ''
      while not (answer.startswith('y') or answer.startswith('n')):
          print('Do you want to play again? (yes or no)')
          answer = input().lower()
          if answer.startswith('y'):
              return True
          elif answer.startswith('n'):
              return False
          else:
              print ('That is not a valid answer.')
              print ()
  </code></pre>
  
  <p>Thanks!</p>