一直在用range函数,但是有时候是囫囵吞枣。
其实并不是很了解,通过一个小小的例子去了解range函数的用法。
图一
易错之一:range(1, 5)可以看看图中的结果,从“1”开始,到“4”结束。你可能以为它会到“5”结束,那么你想错了。
这个地方是很容易出错的。
易错之二:range(5)的执行结果是从零开始的,而不是从“1”开始的,看到了吧。这里的参数只有一个,那么函数会从零开始输出,最后得到具有五个元素的列表。
易错之三:range(1, 5, 2)这里是三个参数,第三个参数是步长。从“1”开始开始循环,增加步长后输出下一位数字。但最后一位要小于停止位。
在《python核心编程》的第二版中,有这样的一道题目。
“有一个字符串,我们想通过一个循环按照这样的形式去显示它:每次都把最后一位的字符删除并输出删除后的字符串。”
通过这个例子你也可以加深对range函数的使用。
图 二
图 二中,可以把原始的字符串输出,关键是它使用了None作为索引值。
如果你对上面的程序还不很清楚,有可能是你对序列数据类型的切片操作还不是很清晰,请看以下的例子:
图 三
看到这里你应该明白,为什么使用None作参数了吧?
以下是总结:
range函数:(start, stop, step)这样的三个参数组成。
1 这是一个通用的函数去创建一个列表,经常被用在for循环中,参数都是整数。
2 如果step参数被省略,函数默认步长为‘“1”。
3 如果start参数被省略,函数默认从"0"开始输出列表。
4 如果步长是正数,那么被range函数输出的列表的最后一个元素为start + i times step,这个数是要小于stop参数的。
5 如果步长是负数,那么被range函数输出的列表的最后一个元素为start + i times step,这个数是要大于stop参数的。
6 step的值是不能为“0”的。
函数虽小,但在数据处理中发挥大威力。