在c、Java中需要循环遍历时,常见如下形式的代码:
for(i=0;i++;i<length(str)){
...}
在python中直接可以调用内置函数range,如下代码会输出0到num-1的数,range的关键理解点:
range是左闭右开区间
for i in range(10):
print(i)
指定区间:
指定区间和步长:
结合range(len(target)) 遍历,target可以是任何可迭代对象:
target = [5,4,3,2,100]
for i in range(len(target)):
print(target[i])
range函数具有生成器的特性,如果为了实现下面这个for循环,而事先在内存中准备好从1到10000000000000000000000000这么多个数,那么你的内存肯定溢出了,死机是正常的。不用怀疑,大多数情况下程序都是这么干的。不同的是,range在内部的实现机制上,并不会直接在内存中一次性生成如此多的数,而是需要一个就生成一个,然后返回一个,这样不但节省了内存,也防止了上面例子中数字过大而无法表示的情况。
range的步长为负数时,区间的写法:
规律:
当步长为正数时,区间是[min,max,step]
当步长为负数时,区间时[max,min,step]