系统提示最后一行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()

python2.7

牧瀨紅莉栖 9 years, 3 months ago

Your Answer