range()函数

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

range()函数有三个参数,分别是start, stop和step。准确的说range()函数将返回一个从start到stop,步长为step的整数序列的对象

help(range)

>>> Return an object that produces a sequence of integers from start (inclusive) to stop (exclusive) by step.

range()的类型是一个整数序列对象,而不是列表。如

但是可以用list()函数返回该对象的列表。如

下面的示例中会综合使用到range()及list()。更清楚的讲解range()函数

range的使用可以是单参数,双参数和三参数,下面逐一举例

单参数:

range(10)

返回一个从 0 到 10 的整数序列的对象,默认步长 step = 1 

list(range(10)) 

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

单参数中所传参数为stop,默认start = 0, step = 1

双参数:

返回一个从start到stop的整数序列的对象, 默认步长 step = 1

range(2, 10)

返回一个从2到10的整数序列的对象 , 默认步长step = 1

list(range(2, 10))

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

双参数中第一个参数为start,第二个参数为stop, 默认step = 1

提问:

  如果 start > stop会产生一个什么样的整数序列对象?

  list(range(10, 2)) = ?

  它的结果会是 [10,9,8,7,6,5,4,3]吗?

三参数:

返回一个从start到stop的整数序列的对象, step 为第三个参数的值

range(2, 10, 2)

list(range(2, 10, 2))

[2,4,6,8]

三参数中加入了步长step,我们因此可以自己设定每个元素的间距,所以range(2, 10, 2)可以很好的解释为 

从 整数 2 开始 ,每2个整数取一位放到整数列表中,到整数10结束(不包括整数10)

好了,现在可以回答双参数中留的问题了,

range(10, 2),由于step默认为 1 ,故可以解释为 

从整数 10 开始, 每 1 个整数取一位放到整数列表中, 到整数2结束(不包括整数2)

很显然,从10开始,步长是 1 ,故 10 +1 = 11 ,下一个数为 11 ,很显然这样加下去是到不了 整数 2的,所以直接返回一个空的整数列表对象

list(range(10, 2))

[]

那如果想要 得到 从 10 - 2的对象呢?很简单,步长设 -1 就可以

list(range(10,-2,-1))

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

原文地址:https://www.cnblogs.com/GuoYuying/p/11518771.html