当前位置: 首页 > news >正文

42. Python range函数—生成器函数

42. range函数—生成器函数

文章目录

  • 42. range函数—生成器函数
    • 1. 什么是range( )函数
    • 2. 回顾列表切片的语法
    • 3. range( )函数的语法
    • 3. range函数实操
      • 3.1 只有1个参数
      • 3.2 有2个参数
      • 3.3 有3个参数
      • 3.4 步长为负数
    • 4. list不能完全替代range
    • 5. 总结

1. 什么是range( )函数

range[reɪndʒ]:按一定的次数排列。

range的中文意思是按一定的次数排列。

range( )函数:Python中的生成器函数。

range( )函数在Python中的作用是生成一个新的range对象。

【温馨提示】

什么是生成器函数、什么是对象就是Python中的一个概念,就是一个定义,初学不用过多纠结。

初学者重点掌握range函数的语法即可。

什么是对象,后面的内容会讲。

2. 回顾列表切片的语法

列表[star:end:step]

列表[开始字符:结束字符:步长]

列表切片取值语法由4部分构成:

  1. 列表名。

  2. 英文中括号。

  3. 3个参数。

  4. 3个参数之间用英文冒号分隔。

# 新建一个str列表
str_list = ["当归", "人参",  "黄芪",  "红枣",  "枸杞",  "天麻",  "山楂"]

# 用切片从列表中取值
print(str_list[0:4:2])

# type函数查看列表切片取值的数据类型
print("列表切片取值得到的数据类型仍然是列表:", type(str_list[0:4:2]))

【终端输出】

['当归', '黄芪']
列表切片取值得到的数据类型仍然是列表: <class 'list'>

【0:4:2代码解析】

start=0即开始元素的索引为0,索引0对应列表的第1个元素,即元素当归

end=4即结束元素的索引为4,索引4对应列表的第5个元素,即元素枸杞

注意切片的语法:含前不含后,即含开始元素,不含结束元素枸杞

step=2即步长为2,步长为2可以理解成一次性向前走2步,那就是要跳过1个字符。

在这里插入图片描述

3. range( )函数的语法

【列表切片和range函数的区别】

列表切片用英文中括号[],range函数用英文圆括号()

列表切片的3个参数用英文冒号:分隔。

range函数的3个参数用英文逗号,分隔。

列表[star:end:step]

range(star,end,step)

【range( )函数的语法如下】

range(开始字符,结束字符,步长)

range( )函数由4部分组成:

  1. 函数名:range

  2. 英文小括号:( )

  3. 3个参数

  4. 3个参数之间用英文逗号,分隔

在这里插入图片描述

【参数说明】

  1. 参数start:表示起始的整数(包含该整数),如果不指定,则默认为0

  2. 参数end:表示结束的整数(不包含该整数),不能省略。

  3. 参数step:表示步长,即两个数之间的间隔。如果省略,则默认为1,当省略该步长时,最后一个英文逗号也可以省略。

【重点提示】

切片和range函数都包括开始字符,不包括结束字符,简单记忆为含前不含后

【返回值】

range函数返回的是一个range对象。

我们可以利用list函数将range对象转换成列表。

我们可以利用tuple函数将range对象转换成元组。

【温馨提示】

range函数不能直接生成列表或元组,必需利用list、tuple函数将其转换成列表或元组。

3. range函数实操

3.1 只有1个参数

# 创建一个range 函数,将结果赋值给变量r
r = range(3)

# 输出r 
print(r)

# 用type函数查看r的数据类型
print(type(r))

# 用list函数将range对象转换为列表
print(list(r))

# 用tuple函数将range对象转换为元组
print(tuple(r))

【终端输出】

range(0, 3)
<class 'range'>
[0, 1, 2]
(0, 1, 2)

【range(3)代码解析】

这里只有1个参数3

只有1个参数表示从整数0开始,步长为1。

start=0

end=3

step=1,即步长为1

在这里插入图片描述

【代码解析:返回值】

我们用type函数查看数据类型,返回的是<class 'range'>,即是一个range对象。

我们利用list将其转换成列表,我们可以发现列表中的元素就是一个数学中的等差数列。

为了方便理解,我们可以认为range函数在list函数的作用下,创建的就是一个等差数列。

数列的公差就是步长。

3.2 有2个参数

# 创建一个range 函数,将结果赋值给变量r
r = range(2,5)

# 输出r 
print(r)

# 用type函数查看r的数据类型
print(type(r))

# 用list函数将range对象转换为列表
print(list(r))

【终端输出】

range(2, 5)
<class 'range'>
[2, 3, 4]

【range(2,5)代码解析】

start=2,从2开始,包含2。

end=5,到5结束,不包含5。

step=1,步长为1。

因此输出结果为2,3,4。

3.3 有3个参数

# 创建一个range 函数,将结果赋值给变量r
r = range(2,11,3)

# 输出r 
print(r)

# 用type函数查看r的数据类型
print(type(r))

# 用list函数将range对象转换为列表
print(list(r))

【终端输出】

range(2, 11, 3)
<class 'range'>
[2, 5, 8]

【range(2,11,3)代码解析】

start=2,从2开始,包含2。

end=11,到11结束,不包含11。

step=3,步长为3,也可以理解为公差为3的等差数列。

第1个数为2。
第2个数为2+3=5。
第3个数为5+3=8。
第4个数为8+3=11。(不包含)
因此输出列表中有2,5,8三个数。

3.4 步长为负数

# 创建一个range 函数,将结果赋值给变量r
r = range(15,0,-5)

# 输出r 
print(r)

# 用type函数查看r的数据类型
print(type(r))

# 用list函数将range对象转换为列表
print(list(r))

【终端输出】

range(15, 0, -5)
<class 'range'>
[15, 10, 5]

【range(15,0,-5)代码解析】

start=15,从15开始,包含15。

end=0,到0结束,不包含0。

step=-5,步长为-5,也可以理解为公差为-5的等差数列。

第1个数为15。
第2个数为15-5=10。
第3个数为10-5=5。
第4个数为5-5=0。(不包含)
因此输出列表中有15,10,5三个数。

4. list不能完全替代range

range函数和list函数最终都能生成一个列表,但两个函数各有优缺点。

# 创建一个整数列表
int_list = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
print(int_list)

r=range(20)
print(list(r))

【终端输出】

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

观察上面的代码,我们发现用range函数创建一个有规律的整数列表更为便捷。

list函数需要写20个元素,但range函数最多写3个参数就可以完成。

5. 总结

在这里插入图片描述

相关文章:

  • [附源码]Python计算机毕业设计Django医学图像管理平台
  • 阿里云的工程师又闯祸了,github上紧急修复
  • 微服务框架 SpringCloud微服务架构 22 DSL 查询语法 22.3 精确查询
  • 基于python环境的pip安装事项
  • Jenkins之Email配置与任务邮件发送实践与踩坑(转)
  • 我是如何开始能写python爬虫的?给零基础入门Python小白一条清晰的学习路线
  • 投屏电脑怎么操作?投屏电脑最常用的4种方式
  • Apache HTTPD 换行解析漏洞(CVE-2017-15715)
  • React核心工作原理
  • ABAP-SAP-整合事务码,整合平台,运维工具箱
  • 1.5.4 HDFS 客户端操作-hadoop-最全最完整的保姆级的java大数据学习资料
  • C++:关键字
  • WebRTC GCC 拥塞控制算法(TFB-GCC)
  • [附源码]计算机毕业设计考试系统Springboot程序
  • 转行编程语言该怎么选择?小扎给你安排上
  • Service (一) 启动/绑定服务
  • 效率倍增!5款超级好用的Python工具库!
  • 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.2 界面布局
  • React组件设计模式-纯组件,函数组件,高阶组件
  • React的useLayoutEffect和useEffect执行时机有什么不同
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉