Python range() 函数用法
python2.x range() 函数可创建一个整数列表,一般用在 for 循环中。
注意:Python3 range() 返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表,具体可查阅 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
northxw
nor***w@qq.com
Python3.x 中 range() 函数返回的结果是一个整数序列的对象,而不是列表。
当你 help(range) 时会看到:
所以,不是列表,但是可以利用 list 函数返回列表,即:
northxw
nor***w@qq.com
uswood
usw***@163.com
在尝试将 range 生成的列表(感谢楼上的笔记)作为可变长参数元组传入函数的时候,发现列表会作为一个元组元素传入,因此要在使用的时候使用嵌套的 for 来遍历两次。
代码如下:
因为这里演示的是计算列表,如果只是计算数字,只需要 for 遍历一次而不是 for两次。
因为多个参数作为可变长参数元组传入后,是一个元组,当把列表传入后,就会成为一个元素 ([1,2,3],) 所以使用两次遍历。
如果继续编写,可以添加 isinstance(argu,list) 函数来判断元素是否为列表,用分支分别处理不同的元素。
uswood
usw***@163.com
Asterism2012
159***0795@qq.com
倒序
Asterism2012
159***0795@qq.com
you33me
zho***@wangsu.com
range(1,10) 是 1-9 :
range(10) 是 0-9 :
you33me
zho***@wangsu.com
zoutao
isz***ao@163.com
range 的列表解析:
zoutao
isz***ao@163.com
sleepybear
543***127@qq.com
range 生成的列表,列表中的元素相互独立,即地址各不相同,这与 * 号重复列表生成的列表大相径庭,前者类似深拷贝,后者则纯粹是浅拷贝,如下所示:
结果如下:
sleepybear
543***127@qq.com