模仿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,其它的都没有问题了。

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

时间: 2024-10-07 03:25:47

模仿python中的range功能的相关文章

Python中set的功能介绍

Set的功能介绍 1.集合的两种函数(方法) 1. 集合的内置函数 交集 格式:x.__and__(y)等同于x&y 例如:s1 = {'a',1,} s2 = {'b',1,} s3 = {'b','d'} print(s1.__and__(s2)) >>> {1} print(s1.__and__(s3)) >>> set() 返回值:set #y只能是集合,当两个集合没有交集时,返回值为空集合. 判断是否是包含关系 格式:x.__contains__(y)

python中int的功能介绍

int的功能介绍 1. 绝对值 x.__abs__()等同于abs(x) 2. 加法 x.__add__(y)等同于x+y 3. 与运算 x.__and__(y)等同于x&y 4. 布尔运算 x.__bool__() 5. 商和余数 x.__divmod__(y)等同于divmod(x,y) 6. 等于 x.__eq__(y)等同于x==y 7. 整数转为为浮点数 x.__float__()等同于float(x) 8. 地板除 x.__floordiv__(y)等同于x//y 9. 大于等于 x

Python中list的功能介绍

List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([4,5,6])) >>> [1,2,3,4,5,6] 返回值:list 注:上述的y可以是list/tuple/str/dict/set等,但不可以是int. 是否是包含关系 格式:x.__contains__(y)等同于y in x 例如:list1 = [1,2,3] print(lis

Python中tuple的功能介绍

Tuple的功能介绍 1. 元组的两种方法 1. 元组的内置方法 两个元组的相加 格式:x.__add__(y)等同于x+y 例如:tu1 = (1,2,3,) print(tu1.__add__((2,3,4,))) >>> (1, 2, 3, 2, 3, 4) 返回值:tuple #只能是两个元组相加,生成一个新元组 判断是否是包含关系 格式:x.__contains__(y)等同于y in x 例如:tu1 = (1,2,3,) print(tu1.__contains__(3))

python中的range()\input()\print()\eval()

1.函数range()是python的内置函数,可以用来创建一个整数列表,一般用在 for 循环中. 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始.默认是从 0 开始.例如range(5)等价于range(0, 5); end: 计数到 end 结束,但不包括 end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1.例如:range(0, 5) 等价于 range(0, 5, 1

python中的range()函数

range() 说是一个函数,准确来说,是一个类 range(start, stop[, step]) 左开右闭,不包括stop的值 start: 计数从 start 开始.默认是从 0 开始.例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1.例如:range(0, 5) 等价于 range(0, 5, 1) >>>range(10)

Python中实现数组功能

#相当于C语言中的array[10] array = [0 for i in range(10)] array = [0] * 10 #相当于C语言中的array[10][10] array = [[0 for j in range(10)] for i in range(10)] array = [[0] for i in range(10)] for i in range(10): for j in range(10): array[i].append(0) array = [[0] * 1

Python中的range函数用法

函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range(0, 5); end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 scan:每次跳跃的间距,默认为1.例如:range(0, 5) 等价于 range(0, 5, 1) >>> range(5)range(0, 5)=0,1,2,3,4 range(0,5,2)=0,2,4

Python中的切片操作

Python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子,一起来看看吧,希望对大家学习python有所帮助. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>> for i in range(1,100)[6::7]: print i 7 14 21 28 35 42 49 56 63 70 77 84 91 98 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>