python中自定义的栈
# 栈 先进后出 例如蒸笼,弹夹,饭菜等
class StackFullException(Exception):
"""自定义一个栈溢出异常"""
pass
class StackEmptyException(Exception):
"""自定义一个栈空出异常"""
pass
class Stack:
"""
自定义一个栈
"""
def __init__(self, size):
self.size = size
self.lst = [] # 存放数据的列表
self.top = 0 # 栈顶指针
def push(self, el):
"""入栈"""
if self.top >= self.size:
raise StackFullException('Your stack is full!')
self.lst.insert(self.top, el) # 放入元素
self.top += 1 # 栈顶指针向上移动一下
def pop(self):
"""出栈"""
if self.top == 0:
raise StackEmptyException('Your stack is empty!')
self.top -= 1
el = self.lst[self.top]
return el
s = Stack(4) # 传入栈的长度
# 往栈传入数据
s.push('林志玲')
s.push('朱茵')
s.push('金喜善')
s.push('张娜拉')

print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())


python中自定义的栈的更多相关文章
- Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?
这是因为Python3中,str的输出是调用类的实例方法__str__来输出,如果__str__方法没有重写,则自动继承object类的__str__方法,而object类的__str__方法是调用_ ...
- 【转】Python中自定义可迭代对象
python 中内置的可迭代的对象有 list.tuple.set.dict 等,那么我们自己怎么定义一个可迭代的对象呢?先来段代码吧 import re import reprlib RE_WORD ...
- python中自定义模块的引用
在python中,实现能够在任何路径下都可以直接import,就必须将存放函数或类的文件添加到python的搜索路径. 其实很简单,主要步骤就是: import sys sys.path.append ...
- python中两种栈实现方式的性能对比
在计算机的世界中,同一个问题,使用不同的数据结构和算法实现,所使用的资源有很大差别 为了方便量化python中算法的资源消耗,对性能做测试非常有必要,这里针对stack做了python语言 下的性能分 ...
- Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?
在<第8.23节 Python中使用sort/sorted排序与"富比较"方法的关系分析>中介绍了排序方法sort和函数sorted在没有提供key参数的情况下默认调用 ...
- python中自定义超时异常的几种方法
最近在项目中调用第三方接口时候,经常会出现请求超时的情况,或者参数的问题导致调用异代码异常.针对超时异常,查询了python 相关文档,没有并发现完善的包来根据用户自定义的时间来抛出超时异常的模块.所 ...
- Python中自定义filter用法
django中新建项目,在项目中新建app,自定义filter一般放到app中.结构目录如下: 1.先在APP中新建一个templatetags的django文件夹,文件夹中新建一个filter的py ...
- python中自定义排序函数
Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted() ...
- 『无为则无心』Python基础 — 62、Python中自定义迭代器
目录 1.迭代器对象的创建 2.实际应用案例 3.总结: 1.迭代器对象的创建 迭代器是一种可以被遍历的对象,并且能够作用于next()函数,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问 ...
随机推荐
- Unity 关于AssetBundle读取场景
一. 1.关于如何打包成ab包,就不多说了,网上很多教程,siki学院也有siki老师的免费视频教程挺详细的,可以看看 http://www.sikiedu.com/my/course/74 2.为了 ...
- 重新复习~ 为了重新找工作 - > XMLHttpRequest2.0 Jsonp nodeType 节点 webpack基本搭建 闭包的一句话总结
XMLHttpRequest2.0 1.可以设置超时 (xhr.timeout = 1000; ontimeout()函数) 2.支持FormData对象管理表单数据(new FormData 方法: ...
- Exploit-Exercises nebule 旅行日志(五)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level04了 先看下level04的问题描述: (level4.c) #include <stdlib.h> #include ...
- SQLServer学习记录
use TestDataBase;go -- 派生表-- 第3页,每页5条数据select * from (select ROW_NUMBER() over(order by stuId) as nu ...
- DevExpress v18.2新版亮点——DevExtreme篇(二)
行业领先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExtreme Complete Sub ...
- Python 天气查询到实现语音播放
import requests #引用requests模块import pygame # 获取天气def inquery(self): url = "https://free-api.hew ...
- 解决linux root 认证失败的问题
https://jingyan.baidu.com/article/3052f5a1f1b17c97f31f8688.html
- 1011. World Cup Betting (20)
生词(在文中的意思) tie 平局 lay a bet 打赌 putting their money where their mouths were 把他们的钱用在刀刃上 manner of 的方式 ...
- 关于position的一些问题
position属性: static:静止 relative:相对的 fixed:固定的 absolu:绝对的 position的一些实例子如下: HTML: <!DOCTYPE htm ...
- Javascript学习一数据类型
1.介绍js的基本数据类型 Undefined.Null.Boolean.Number.String (1) Undefined和Undifined区别 null是一个表示"无"的 ...