初学python一个细小的问题
#!/user/bin/env python
stack=[]
def pushit ():
stack.append(input('Enter New string:').strip())
def popit ():
if len(stack)==0:
print('Can not pop from an empty stack!')
else:
print('Removes[',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 1>0:
while 1>0:
try:
choice=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()
这样,返回Traceback (most recent call last):
File "E:/Python/菜单驱动.py", line 24, in <module>
choice=input(pr).strip()[0].lower()
NameError: name 'pr' is not defined
请教,怎么改?
[解决办法]
#!/user/bin/env pythonstack = []def pushit(): stack.append(raw_input('Enter New string:').strip())def popit(): if len(stack) == 0: print('Can not pop from an empty stack!') else: print('Removes[', stack.pop(), ']')def viewstack(): print (stack) CMDs = {'u':pushit, 'o':popit, 'v':viewstack}def showmenu(): pr = '''p(U)shp(O)p(V)iew(Q)uitEnter choice:''' while 1 > 0: while 1 > 0: 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()