![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python算法
Rubick_Y
这个作者很懒,什么都没留下…
展开
-
鸭子类型和白鹅类型
鸭子类型的定义是:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”言简意赅的理解是:“对象的类型无关紧要,只要实现了特定的协议即可。忽略对象真正的类型,转而关注对象有没有实现所需的方法、签名和语义。”最直接的结果就是:一个用户定义的类型,不需要真正的继承自抽象基类,但是却可以当作其子类一样来使用。比如用户实现了序列协议,就可以当作内置序列类型来用,对其使用len()等函数,调用__len__()等用于内置类型的方法。比如用户实现了__getitem__原创 2022-03-03 16:43:04 · 238 阅读 · 0 评论 -
线性数据结构(Python 实现)
一旦一个数据项被添加,它相对于前后元素一直保持该位置不变。诸如此类的数据结构被称为线性数据结构。栈,队列,deques, 列表是一类数据的容器,它们数据项之间的顺序由添加或删除的顺序决定。 线性数据结构有两端,有时被称为左右,某些情况被称为前后。你也可以称为顶部和底部,名字都不重要。将两个线性数据结构区分开的方法是添加和移除项的方式,特别是添加和移除项的位置。例如一些结构允许从一端添加项,另一些...原创 2018-03-08 05:31:16 · 1996 阅读 · 0 评论 -
Python 协程
协程,又称微线程,纤程。英文名Coroutine。协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序调用是通过栈实现的,一个线程就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程...原创 2018-03-28 11:11:30 · 131 阅读 · 0 评论 -
简单数学计算器求值(Python)
思路:数学计算式是中缀表达式,所以先把中缀表达式转换为后缀表达式,然后对后缀表达式进行求值。中缀表达式: 在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表达式后缀表达式: 又叫逆波兰表达式 ,不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 ...原创 2018-05-14 19:52:57 · 1753 阅读 · 0 评论