jack_yanf 发表于 2015-05-02 15:45

python 程序报错

我完全按照教科书上写的程序,怎么执行不了的,程序如下 :
#!/usr/bin/env python

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
          
          
          
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().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()

if _name_ == '_main_':
       showmenu()


执行之后报错:
# python stack.py
Traceback (most recent call last):
File "stack.py", line 37, in <module>
    choice = raw_input(pr).strip().lower()
NameError: name 'pr' is not defined

liion631818 发表于 2015-05-02 21:05

回复 1# jack_yanf


    while True :
          while True:
                   try:

这段代码是在showmenu下面,缩进格式不对,所以找不到pr

另外, _main_写法是错的,是__main__,前后都是2个下划线

jack_yanf 发表于 2015-05-02 22:15

回复 2# liion631818
原先缩进有大问题,然后那个两个下划线,刚接触python不久,还不是很清楚,太谢谢你的回答了。:handshake


   
页: [1]
查看完整版本: python 程序报错