How to let a raw_input repeat until I want to quit?

timy picture timy · Nov 23, 2009 · Viewed 19.8k times · Source

Say I want to use raw_input like this:

code = raw_input("Please enter your three-letter code or a blank line to quit: ")

under:

if __name__=="__main__": 

How can I let it repeat multiple times rather than just once every time I run the program?
Another question is to write what code can satisfy the condition "or a blank line to quit (the program)".

Answer

Alex Martelli picture Alex Martelli · Nov 23, 2009

best:

if __name__ == '__main__':
  while True:
    entered = raw_input("Please enter your three-letter code or leave a blank line to quit: ")
    if not entered: break
    if len(entered) != 3:
      print "%r is NOT three letters, it's %d" % (entered, len(entered))
      continue
    if not entered.isalpha():
      print "%r are NOT all letters -- please enter exactly three letters, nothing else!"
      continue
    process(entered)