Python中的range()函数:用于生成一个整数序列,可用于循环等场景。
Python中的range()函数是一个非常常用而且非常有用的内置函数,可以用于生成一个整数序列,方便我们进行循环、迭代和其他一些需要整数序列的场合。range()函数的基本语法格式如下:
range(start, stop[, step])
其中,start、stop和step均为参数,用于指定生成整数序列的起始值、终止值和步长。具体来说,range(start, stop, step)函数会生成一个从start到stop(不包含stop)的整数序列,步长为step。默认情况下,start为0,step为1。
range()函数的返回值是一个range对象,这是一个特殊的类型,可以被for循环等迭代器使用,并且可以通过list()函数将其转换为一个列表(即可迭代的序列),例如:
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8]
可以看到,range(5)函数生成的是一个从0到5(不包含5)的整数序列,而list(range(5))则将其转换为了一个列表。类似地,range(5, 10)函数生成的是一个从5到10(不包含10)的整数序列,而range(0, 10, 2)函数则生成的是一个从0开始,以2为步长,到10以内的整数序列。
需要注意的是,range()函数自身并不会输出任何东西,它仅仅是一个生成整数序列的工具,我们需要将其放在一个循环或其他迭代器中使用,才能得到其效果。例如,我们可以使用for循环来遍历一个range对象,例如:
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
这个例子中,我们遍历了一个从0到5(不包含5)的整数序列,即0、1、2、3、4,将每个元素打印出来。需要注意的是,range对象不包含终止值,因此在遍历时只会打印出0到4这几个元素。
除了for循环之外,我们还可以使用while循环、列表解析式和其他一些迭代器来遍历range对象,例如:
>>> i = 0
>>> while i < 5:
... print(i)
... i += 1
...
0
1
2
3
4
>>> [i for i in range(5)]
[0, 1, 2, 3, 4]
>>> s = sum(range(5))
>>> print(s)
10
这些例子分别使用了while循环、列表解析式和sum()函数来遍历range对象并做出相应的操作。需要注意的是,以上示例中的range对象均为从0开始的整数序列,其实我们也可以指定其他的起始值和步长,例如:
>>> for i in range(2, 10, 2):
... print(i)
...
2
4
6
8
>>> for i in range(10, 2, -2):
... print(i)
...
10
8
6
4
这两个例子分别演示了从2开始,以2为步长,到10以内的整数序列和从10开始,以-2为步长,到2以内的整数序列。需要注意的是,步长可以为负数,这样就可以生成倒序的整数序列。
最后需要注意的一点是,Python 2.x和Python 3.x在range()函数上存在差异。在Python 2.x中,range()函数返回的是一个列表,而在Python 3.x中,range()函数返回的是一个迭代器,这个区别可能会在一些情况下产生影响,需要根据实际情况选择合适的版本。
