Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 用Python实现栈

这是Python核心编程里的一个例子:#!/usr/bin/env python 
 
#定义一个列表来模拟栈 
stack = [] 
 
#进栈,调用列表的append()函数加到列表的末尾,strip()没有参数是去掉首尾的空格 
def pushit(): 
    stack.append(raw_input("Enter new string: ").strip()) 
 
#出栈,用到了pop()函数 
def popit(): 
    if len(stack) == 0: 
        print "Cannot pop from an empty stack!" 
    else: 
        print "Removed [", stack.pop(), "]" 
 
#编历栈 
def viewstack(): 
    print stack 
 
#CMDs是字典的使用 
CMDs = {"u": pushit, "o": popit, "v": viewstack} 
 
#pr为提示字符 
def showmenu(): 
    pr = """
    p(U)sh
    p(O)p
    (V)iew
    (Q)uit
        Enter choice: """ 
 
    while True: 
        while True: 
            try: 
                #先用strip()去掉空格,再把第一个字符转换成小写的 
                choice = raw_input(pr).strip()[0].lower() 
            except (EOFError, KeyboardInterrupt, IndexError): 
                choice = "q" 
 
            print " You picked: [%s]" % choice 
            if choice not in "uovq": 
                print "Invalid option, try again" 
            else: 
                break 
 
#CMDs[]根据输入的choice从字典中对应相应的value,比如说输入u,从字典中得到value为pushit,执行pushit()进栈操作 
        if choice == "q": 
            break 
        CMDs[choice]() 
 
#判断是否是从本文件进入,而不是被调用 
if __name__ == "__main__": 
    showmenu() 需要注意的就是对齐问题.