python中range()函数用法

python中range()函数用法,第1张

Python range()函数可创建一个整数列表,一般用在for循环中。

注意:Python3 range()返回的是一个可迭代对象,类型是对象,而不是列表类型,所以打印的时候不会打印列表。

函数语法:

range(start,stop[,step])

参数说明:

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) # 从 0 开始到 9

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>>range(1, 11) # 从 1 开始到 10

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>range(0, 30, 5) # 步长为 5

[0, 5, 10, 15, 20, 25]

>>>range(0, 10, 3) # 步长为 3

[0, 3, 6, 9]

>>>range(0, -10, -1) # 负数

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

>>>range(0)

[]

>>>range(1, 0)

[]

以下是range在for中的使用,循环出runoob的每个字母:

>>>x = 'runoob'

>>>for i in range(len(x)) :

... print(x[i])

...

r

u

n

o

o

b

>>>

range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。

Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。

range 类型表示不可变的数字序列,通常用于在 for 循环中循环指定的次数。

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 对象确实支持负索引,但是会将其解读为从正索引所确定的序列的末尾开始索引。

元素绝对值大于 sys.maxsize 的 range 对象是被允许的,但某些特性 (例如 len()) 可能引发 OverflowError。

一些 range 对象的例子:

range 对象实现了 一般 序列的所有 *** 作,但拼接和重复除外(这是由于 range 对象只能表示符合严格模式的序列,而重复和拼接通常都会违反这样的模式)。

start

start 形参的值 (如果该形参未提供则为 0 )

stop

stop 形参的值

step

step 形参的值 (如果该形参未提供则为 1 )

range 类型相比常规 list 或 tuple 的优势在于一个 range 对象总是占用固定数量的(较小)内存,不论其所表示的范围有多大(因为它只保存了 start , stop 和 step 值,并会根据需要计算具体单项或子范围的值)。

range 对象实现了 collections.abc.Sequence ABC,提供如包含检测、元素索引查找、切片等特性,并支持负索引

使用 == 和 != 检测 range 对象是否相等是将其作为序列来比较。 也就是说,如果两个 range 对象表示相同的值序列就认为它们是相等的。 (请注意比较结果相等的两个 range 对象可能会具有不同的 start, stop 和 step 属性,例如 range(0) == range(2, 1, 3) 而 range(0, 3, 2) == range(0, 4, 2) 。)

在 3.2 版更改: 实现 Sequence ABC。 支持切片和负数索引。 使用 int 对象在固定时间内进行成员检测,而不是逐一迭代所有项。

在 3.3 版更改: 定义 '==' 和 '!=' 以根据 range 对象所定义的值序列来进行比较(而不是根据对象的标识)。

3.3 新版功能: start, stop 和 step 属性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11776857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存