官方网址:range
解释:
The range type represents an immutable sequence of numbers and is commonly used for looping a specific number of times in for loops.
range类型返回不可变的数字序列(可迭代的对象),通常用于循环for循环的特定次数。
使用:
range(start,stop,[,step])
range构造函数的参数必须是整数(内置的int或任何实现__index__特殊方法的对象)。如果省略了step参数,则默认为1。如果忽略start参数,则默认为0。如果step为0,则会引发ValueError。
举例:
1 #没有start则默认从0开始 2 >>> list(range(10)) 3 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 4 >>> list(range(1,11)) 5 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 6 #设置步长为5 7 >>> list(range(0,30,5)) 8 [0, 5, 10, 15, 20, 25] 9 #反向 10 >>> list(range(0,-10,-2)) 11 [0, -2, -4, -6, -8] 12 >>> list(range(1,0)) 13 [] 14 #step为0,则报错 15 >>> list(range(1,10,0)) 16 Traceback (most recent call last): 17 File "<stdin>", line 1, in <module> 18 ValueError: range() arg 3 must not be zero
同时range对象可以进行元素索引查找、切片和对负索引等操作(实现了collections.abc.Sequence方法[先占坑]),以及包含测试,提供两个特有方法
count方法:count(value) ->返回值为出现次数
index方法:rangeobject。索引(值,[start, [stop]]) ->整数——返回值索引。
如果该值不存在,将引发ValueError。
举例:
>>> r=range(0,20,2) >>> r range(0, 20, 2) >>> 11 in r False >>> 10 in r True #返回10第一次出现的位置 >>> r.index(10) >>> r[5] #支持切片操作 >>> r[:5] range(0, 10, 2) >>> r[-1] #返回值也就是10出现的次数 >>> r.count(10) #支持比较操作,如果两个范围对象表示相同的值序列,则认为它们相等 >>> range(0,3,2)==range(0,4,2) True #range长度 >>> len(r) 10 #最小值 >>> min(r) 0 #最大值 >>> max(r) 18 #总和 >>> sum(r) 90