首页 > 编程语言 > 详细

模仿python中的range功能

时间:2018-08-21 22:59:01      阅读:195      评论:0      收藏:0      [点我收藏+]

主要是利用生成器来写的一个函数:

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功能

原文:https://www.cnblogs.com/zengsf/p/9514997.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!