利用生成器实现range功能
实现原理:
range(参数 i,参数 j,参数 z):参数 i是起始位置,参数 j是结束位置,参数 z是在参数1和参数2范围内的递增量。
代码如下:
def generator(i=0,j=0,z=1): # range功能的实现
while i<j and z>=1: #递增时
yield i # yield 只保留 当前 数值
i=i+z
pass
while i>j and z<0: #递减时
yield i # yield 只保留 当前 数值
i = i + z
f = generator(2,10,2) #实例一
for i in f:
print(i)
print() #输出一个空格
#具体应用
for x in generator(10,2,-2): #实例二
print(x)
yield的优势是总保留当前值,节省内存空间
如有纰漏,请多指教