主要是利用生成器来写的一个函数:
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,其它的都没有问题了。
原文地址:https://www.cnblogs.com/zengsf/p/9514997.html
时间: 2024-10-07 03:25:47