range()函数返回值是一个迭代器对象,这句话不是很理解。
是不是可以用集合的方式来理解,就是有范围但都不显示?还是迭代器对象如何理解?😰不是很懂...
迭代器可以简单理解为:某个对象A可以用 for _ in A: 循环遍历出里面的所有的值,它就是可以迭代的
详细介绍请见:
https://blog.csdn.net/zhangshuaijun123/article/details/81901708
你弄错了个概念
首先,没有迭代器对象,那叫可迭代对象
如果一个对象可以使用for循环来遍历,那么它就叫可迭代的
而用来实现循环的东西叫做迭代器
你把两个概念混一起了
也可以说,实现了迭代器的对象就叫可迭代对象
可迭代对象有很多,range只是其中一个
tuple,list,set,dict,str,都是可迭代对象
-=-=-=
python里没有c和java里面数组的概念
你可以理解成它只有链表
而凡是实现了类似链表功能的可以返回一个总长度,并且能够通过next方法找到下一项的地址的,就叫迭代器
有了迭代器,就可以通过for循环去遍历它
python的for循环其实类似java里的foreach,而并不像c语言里的for
本质上它是去访问被遍历对象的迭代器来工作的
-=-=-=
最后,range这个东西就是为了你想实现一个c语言里一般意义上的for(也就是从一个数循环到另一个数,并没有一个对象需要遍历)这样的场景诞生的
所以它为了满足python里for的语法,必然也是个可迭代对象
同时为了满足一般意义上的for这个条件,它传入的参数range(a,b,c),a是开始,b是结束(不包括b),c是间隔
那么当你执行for i in range(a,b,c):时
就相当于c语言里的for(i=a;i!=b;i+=c)
c可以是负数