有N,E,Q三个选择,若选择Q或者中断,则系统退出。若其他选项,则持续让用户选择。
#!/usr/bin/env python db = {} def newuser(): prompt = 'login desired: ' while 1: name = raw_input(prompt) if db.has_key(name): prompt = 'name taken, try another: ' continue else: break pwd = raw_input('passwd: ') db[name] = pwd def olduser(): name = raw_input('login: ') pwd = raw_input('passwd: ') passwd = db.get(name) if passwd == pwd: pass else: print 'login incorrect' return print 'welcome back', name def showmenu():##主函数名 prompt = """ (N)ew User Login (E)xisting User Login (Q)uit Enter choice: """ done = 0 ##控制循环的控制器 while not done: chosen = 0 ##控制循环的控制器 while not chosen: try: choice = raw_input(prompt)[0] except (EOFError, KeyboardInterrupt): choice = 'q' print ' You picked: [%s]' % choice if choice not in 'neq':##非neq继续小循环 print 'invalid menu option, try again' else: chosen = 1 ##跳出小循环 if choice == 'q': done = 1 ##跳出大循环 if choice == 'n': newuser() if choice == 'e': olduser() if __name__ == '__main__': showmenu()