模仿python中的range功能
Posted zengsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模仿python中的range功能相关的知识,希望对你有一定的参考价值。
主要是利用生成器来写的一个函数:
def myxrange(start, stop = 0, step = 1): if stop == 0 and step == 1: #只输入一个形参时 stop = start start = 0 while start < stop: yield start start +=1 elif step == 1: #输入两个形参时 while start < stop: yield start start += 1 else: #输入三个形参时 if stop < start and step < 0: while start > stop: yield start start += step elif stop >= start and step > 0: while start < stop: yield start start += step else: print("不合法") print(sum(x**2 for x in myxrange(1, 10) if x % 2 != 0 )) #这里是利用了迭代器推导式直接求和
输出结果:165
只不过还有一个bug,就是当输入两个形参时,第一个形参小于第二个形参且第二个形参为0,其它的都没有问题了。
以上是关于模仿python中的range功能的主要内容,如果未能解决你的问题,请参考以下文章
python python中的漂亮(或漂亮打印)JSON对象具有这一功能。在尝试了解什么时,我总是使用这个片段
Python range 数据类型 [学习 Python 必备基础知识][看此一篇就够了][range()][range 元素元素检测元素索引查找切片负索引][检测 range 对象是否相等](代码片