循环结构终于会出现了

这章讲完差不多读者可以实现大部分程序了

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来实现的)

最新文章

  1. css的relative和position探究
  2. filefiter
  3. LeakCanary内存泄漏检测工具使用步骤
  4. remove ---会报错discard不会报错
  5. Berkeley DB数据处理
  6. 获取系统的IP
  7. 基于visual Studio2013解决C语言竞赛题之1092链表转换
  8. 初识Dapper
  9. IOS开发创建开发证书及发布App应用(四)——创建配置概要文件
  10. 【STL】reverse函数用法
  11. H5 web 存储之 Webstorage
  12. python并发编程之多进程
  13. UE4 custom depth 自定义深度
  14. qt生成二维码
  15. win10系统电脑无法识别u盘的解决办法
  16. 自动化测试的Selenium的python版安装与使用
  17. vue通俗易懂的子组件向父组件传值
  18. C++ MFC棋牌类小游戏day6
  19. TopK
  20. vue:vuex详解

热门文章

  1. 老生常谈系列之Aop--AspectJ
  2. python数据类型、用户交互和运算符
  3. 一起看 I/O | Flutter 3 正式发布!
  4. 拯救一切强迫症 - 读《编写可维护的 JavaScript》(一)
  5. 网络:Tor
  6. 在Windows2003 server 64位系统上使用ArcEngine开发的WCF服务
  7. Hadoop安装学习(第三天)
  8. 【FineBI】增量数据更新语句
  9. KMP算法(改进的模式匹配算法)——next函数
  10. JAVA - 线程从创建到死亡的几种状态都有哪些?