系统提示最后一行showmenu() is not defined求原因和改进方法

stack = []

def pushit():
    stack.append(raw_input('Enter New string: ').strip())

def popit():
    if len (stack)==0:
        print 'Cannot pop from an empty stack!'
    else:
        print 'Removed [', 'stack.pop()',']'

    def viewstack():
        print stack     #calls str() internally

    CMDs = {'u':pushit,'o':popit,'v':viewstack}

    def showmenu():
        pr="""
      p(U)sh
      p(O)p
      (V)iew
      (Q)uit

    Enter CHOICE: """

    while True:
        while True:
            try:
                choice = raw_input(pr).strip() [0].lower()
            except (EOFError,KeyboardInterrupt,IndexError):
                choice = 'q'

            print '\nYou picked: [%s]' % choice
            if choice not in 'uovq':
                print 'Invalid option,try again'
            else:
                break

        if choice =='q':
            break
        CMDs[choice]()

if __name__=='__main__':
    showmenu()
阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进