Python中的常用内置对象之range对象


  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])

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM