python通过列表方式实现栈
后入先出的特性
# coding:utf-8
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()[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]() #通过字典的key 取出值,然后这个值变成方法
if __name__ == '__main__': # 这个是执行执行showmenu的意思吧
showmenu()