51Testing软件测试论坛

标题: python的NameError: name 'xx‘ is not defined该怎么解决? [打印本页]

作者: 测试积点老人    时间: 2019-2-25 10:50
标题: python的NameError: name 'xx‘ is not defined该怎么解决?
初学python 按着书上的代码打 想看看运行过程 代码如下
  1. stack=[]
  2. def pushit():
  3.     stack:append(input(' Enter New String: ').strip())
  4. def popit():
  5.     if len(stack)==0:
  6.         print('Cannot pop from an empty stack!')
  7.     else:
  8.         print ('Removes [','stack.pop()',']')
  9. def viewstack():
  10.     print(stack)
  11. CMDs={'u':pushit,'o':popit,'v':viewstack}
  12. def showmenu():
  13.     pr='''
  14. p(U)sh
  15. p(O)p
  16. (V)iew
  17. (Q)uit

  18. Enter choice:'''
  19. while True:
  20.     while True:
  21.         try:
  22.             choice=input(pr).strip()[0].lower()
  23.         except (EOFError,KeyboardInterrupt,IndexError):
  24.             choice='q'
  25.         print('\nYou picked:[%s]'%choice)
  26.         if choice not in 'uovq':
  27.             print('Invalid option,try again')
  28.         else:
  29.             break
  30.         if choice=='q':
  31.             break
  32.         CMDs[choice]()
  33. if _name_=='_main_':
  34.     showmenu()
复制代码
但是总提示NameError: name 'pr' is not defined ,该怎么解决这个问题?

作者: 丛影    时间: 2019-2-25 15:12
是哪一行报错?
作者: liulixian23    时间: 2019-2-26 01:05
def showmenu():
    pr = '''
    p(U)sh
    p(O)p
    (V)iew
    (Q)uit

    Enter choice:'''
    while True:
        while True:
            try:
                choice=input(pr).strip()[0].lower()
                print(choice)
            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

if __name__ == '__main__':
    showmenu()


我这个是调试可以的了,你可以对比下你的
注意下划线是双下划线,while注意缩进




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2