range函数的使用
循环结构终于会出现了
这章讲完差不多读者可以实现大部分程序了
range()函数
用于生成一个整数序列
内置函数:前面不需要加任何前缀,可以直接使用的函数
创建range对象的三种方式
range(stop)
该函数的作用是创建一个从[0,stop)的整数列表,同时两个数之间的长度默认为1,即步长为1,注意stop<=0的时候,其返回值为空,不会创建
range(start, strop)
该函数时创建一个[start, stop)的整数列表,步长默认让然为1,同样这边的start必须小于stop否则不能创建一个有效的整数列表
range(start, stop, step)
那么自然的就知道该函数的作用是,创建一个[start, stop)的整数列表,步长为step,可以理解为该函数的作用就是创建一个等差数列
range函数的返回值是一个迭代器对象(C++中的STL出来了)
如果想要查看range返回值中的整数序列
借助列表list来实现
print(list(range(10))
range类型的有点,不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素(老数学带师了){推广后,可以发现,只要这个数列可以由通项表示,那么告知首项,范围,即可唯一确定该数列,这边的通项因为是等差数列,所以简化成由公差也就是步长来唯一确定}
in与not in判断整数序列中是否存在(不存在)指定的整数
example:
点击查看代码
r = range(0)
print(list(r))
r = range(19, 20)
print(list(r))
r = range(10, 21, 10)
print(list(r))
print(10 in list(r))
print(10 in r)
print(9 in r)
print(8 not in r)
在这边一定要知道的是,range返回的迭代器对象或者说range这个对象所占的内存是一样的,并不会因为range的范围里面的整数个数非常大而非常大,这是需要注意的地方,只有真正用到range的时候进行展开(貌似展开后对于内存的占用又是跟里面的整数个数成正相关了,网上查找,貌似存储的时候大家的内存占用都一样,但是使用的时候是会自己建立一个list来实现的)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)