range(start, stop[, step]) 可生成满足条件的数。具体来说是返回一个从start开始到小于stop的相邻数的差step的等差数列列表。结果中包含start一直到小于stop的整数,其中start和step有默认值0和1,这两个参数可以省略。
Python的range对象可能是最常用的一个函数了,有了它,可以瞬间帮助工程师生成大量的数据,有了它我们就有了随时随地取用大量满足条件数据的需求。就可以为我们创设各种各样的数据场景。
Python文档中的定义是:
range 类型表示不可变的数字序列,通常用于在 for 循环中循环指定的次数。
使用方法:
§ class range(stop)
§ class range(start, stop[, step])
range 构造器的参数必须为整数(可以是内置的 int 或任何实现了 __index__ 特殊方法的对象)。如果省略 step 参数,其默认值为 1。如果省略 start 参数,其默认值为 0,如果 step 为零则会引发 ValueError。
生成内容为:
§ 如果 step 为正值,确定 range r 内容的公式为 r[i] = start + step*i 其中 i >= 0 且 r[i] < stop。
§ 如果 step 为负值,确定 range 内容的公式仍然为 r[i] = start + step*i,但限制条件改为 i >= 0 且 r[i] > stop.
§ 如果 r[0] 不符合值的限制条件,则该 range 对象为空。range 对象确实支持负索引,但是会将其解读为从正索引所确定的序列的末尾开始索引。
>>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> list(range(0, 30, 5)) [0, 5, 10, 15, 20, 25] >>> list(range(0, 10, 3)) [0, 3, 6, 9] >>> list(range(0, -10, -1)) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] >>> list(range(0)) [] >>> list(range(1, 0)) [] >>> r = range(0, 20, 2) >>> r range(0, 20, 2) >>> 11 in r False >>> 10 in r True >>> r.index(10) 5 >>> r[5] 10 >>> r[:5] range(0, 10, 2) >>> r[-1] 18
实战:如何利用range()获取一个数的所有约数
参考代码1:
1 #一般用法 2 num = 65536 3 l = list() 4 for n in range(1,num+1): 5 if num % n==0: 6 l.append(n) 7 print(l)
参考代码2:
1 #列表推导式用法 2 print([n for n in range(1,num+1) if num%n==0])
原文:https://www.cnblogs.com/ndolls/p/12260536.html