Python range函数

48 篇文章 45 订阅

目录

描述

语法

返回值

使用示例

1. 仅保留stop参数

2. 指定起始位置和终止位置

3. 指定步长

使用注意

1. 所有参数都是整形。不能给出浮点数序列

2. 当start参数省略时,step参数也必须省略

3. step小于1没有任何意义

4. 步长不能为0

5. range()的返回值类型是range


描述

range函数返回一个range类型的整数序列,一般用在循环结构中。

语法

range(start, stop, step)
参数名称说明备注
start计数起始位置整数参数,可省略。省略时默认从0开始计数
stop计数终点位置不可省略的整数参数。计数迭代的序列中不包含stop
step步长可省略的整数参数,默认时步长为1

返回值

range函数返回一个range对象实例。实例包含了计数的起始位置、终点位置和步长等信息。

使用示例

1. 仅保留stop参数

>>> test = range(10)
>>> test
range(0, 10)
>>> list(test)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 指定起始位置和终止位置

>>> test = range(3,10)
>>> test
range(3, 10)
>>> list(test)
[3, 4, 5, 6, 7, 8, 9]

3. 指定步长

>>> test = range(0, 10, 2)
>>> test
range(0, 10, 2)
>>> tuple(test)
(0, 2, 4, 6, 8)

使用注意

1. 所有参数都是整形。不能给出浮点数序列

>>> range(0.1, 0.3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer

2. 当start参数省略时,step参数也必须省略

当star参数省略的时候,step参数也应省略。否则Python会自动将step参数理解为stop,将stop理解为start

例如想给出一个从0到14的序列,步长为2。可是输出的序列转换成列表后却是空列表:

>>> test = range(10, 2)
>>> list(test)
[]

    产生这种现象的原因就是python总是把双参数的range函数当作为range(start,stop)。即一个从10开头,到2结尾的序列。这样的序列是没有任何数字的空序列,因此在转换成列表的过程中,就产生了空列表。

3. step小于1没有任何意义

不同于字符串和列表的分片,range函数中的step并不能将序列反向。当step小于1的时候,序列为空:

>>> test = range(-10, -2, -3)
>>> list(test)
[]

4. 步长不能为0

当step参数为0时,Python报错:range()函数的第三个参数不能为0

>>> test = range(-10, 2, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: range() arg 3 must not be zero

5. range()的返回值类型是range

在Python3中,range函数的返回值类型不再是列表,而是一个range类型。使用者可以使用list函数继续再将其转化成列表。

>>> test = range(5)
>>> type(test)
<class 'range'>
>>> list(test)
[0, 1, 2, 3, 4]
>>> 

  • 136
    点赞
  • 714
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值