读书人

初学python一个细小的有关问题

发布时间: 2012-07-29 15:26:13 作者: rapoo

初学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
请教,怎么改?

[解决办法]

Python code
#!/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() 

读书人网 >perl python

热点推荐