Python实现栈的方法

yipeiwu_com6年前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 '\nYou 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() 

希望本文所述对大家的Python程序设计有所帮助。

相关文章

python定间隔取点(np.linspace)的实现

1、range函数 range(起始值,终点值,间隔) 终点值不一定是最后一个取到的值 得到的是range类的对象,最后用list转换为【】, In [4]: list(range(...

Python 3.6 中使用pdfminer解析pdf文件的实现

Python 3.6 中使用pdfminer解析pdf文件的实现

所使用python环境为最新的3.6版本 一、安装pdfminer模块 安装anaconda后,直接可以通过pip安装 pip install pdfminer3k  ...

Python文本统计功能之西游记用字统计操作示例

Python文本统计功能之西游记用字统计操作示例

本文实例讲述了Python文本统计功能之西游记用字统计操作。分享给大家供大家参考,具体如下: 一、数据 xyj.txt,《西游记》的文本,2.2MB 致敬吴承恩大师,4020行(段) 二...

python中with语句结合上下文管理器操作详解

前言 所谓上下文管理器即在一个类中重写了__enter__方法和__exit__方法的类就可以成为上下文管理器类。 我们可以通过with语句结合上下文管理器简化一些操作。 使用with语...

Python中pip安装非PyPI官网第三方库的方法

在python中安装非自带python模块,有三种方式: 1.easy_install 2.pip 3.下载压缩包(.zip, .tar, .tar.gz)后解压, 进入解压缩的目录后执...