python自学篇九[ 函数(二):返回值return+yield+迭代器+生成器]

MIUI升级后录音神秘消失?别慌!手把手教你从Android/data目录找回宝贵录音文件 本文详细解析了MIUI升级后录音文件消失的原因,并提供了从Android/data目录找回录音文件的实用指南。通过技术分析和步骤演示,帮助小米手机用户解决录音文件丢失问题,同时分享预防措施和高级恢复方案,确保重要录音数据安全。 阅读详情

python基础系列:
python自学篇一[ Anaconda3安装 ]
python自学篇二[ pycharm安装及使用 ]
python自学篇三[ 判断语句if的使用 ]
python自学篇四[ 基本数据类型和字符串常用处理 ]
python自学篇五[ 列表 ]
python自学篇六[ 元组 ]
python自学篇七[ 字典+深拷贝与浅拷贝 ]描述
python自学篇八[ 循环:while+for+pass+range()+推导式 ]
python自学篇九[ 函数(一):参数+对象 ]
python自学篇九[ 函数(二):返回值return+yield+迭代器+生成器 ]
python自学篇九[ 函数(三):变量作用域+ATM+5个小练习 ]
python自学篇九[ 函数(四):递归函数+匿名函数+内置函数+高阶函数 ]
python自学篇十[ 面向对象 (一) :面向对象概念+定义类+练习一]
python自学篇十[ 面向对象 (二) :继承+多继承+类属性+实例属性]
python自学篇十[ 面向对象 (三) :访问限制+类方法+静态方法]
python自学篇十[ 面向对象 (四) :王者荣耀小游戏+模拟一个简单的银行进行业务办理的类]
python自学篇十一[ 模块简介+模块制作+dir()函数+标准模块+包]
python自学篇十二[ 文件:打开+读取+写入+3个习题]

返回值
  • 函数并非总是将结果直接输出,相反,函数的调用者需要函数提供一些通过函数处理过后的一个或者一组数据,只有调用者拥有了这个数据,才能够做一些其他的操作。那么这个时候,就需要函数返回给调用者数据,这个就被称之为返回值,想要在函数中把结果返回给调用者,需要在函数中使用return。
  • 函数的返回值
    return关键字实现
return语句
  • return语句用于退出函数,选择性的向调用者返回一个表达式。直接return的语句返回None。
def max(x,y):
    if x >y:
        return x  #结束函数的运行 并且将结果返回给调用的地方
    else:
        return y
        print(y)  #没有执行print
        #后面的代码不会执行
#调用函数  接受返回值
# num = max(1,2)  #声明一个变量num 接受调用函数后的返回值
# print(max(1,2))  #观察接受的返回值   返回值会返回到调用的地方
  • return返回多个值
def sum(x,y):
    return x,y
函数类型
  • 无参数,无返回值的函数
  • 无参数,有返回值的函数
  • 有参数,无返回值的函数
  • 有参数,有返回值的函数
yield

yield 的作用就是把一个函数变成一个generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个生成器,如调用函数,不会执行该函数,而是返回一个iterable迭代对象( 可以用for in 遍历得对象度可以叫做是可迭代对象:Iterable)!

使用生成器可以达到延迟操作的效果,所谓延迟操作就是指在需要的时候
产生结果而不是立即产生就结果,节省资源消耗,和声明一个序列不同的是
生成器,在不使用的时候几乎是不占内存的。

  • 区别:
    与return类似,都可以返回值,但不一样的地方,yield可以返回多次值,而return只能返回一次。
迭代器
  • 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式
  • 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束
  • 迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()
  • 字符串,列表或元组,集合对象都可用于创建迭代器
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
print (next(it)) # 输出迭代器的下一个元素 1
print (next(it))
生成器(generator)
  • 使用了 yield 的函数被称为生成器
  • 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器
  • 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次从当前位置继续运行
  • 注意:可以通过for循环或者手动调用 Xun(5) 的 next() 方法
a = (x for x in range(10000000))  #不是元组推导式
print(a) #这里不会输出
print(next(a))#输出0
print(next(a))#输出1
print(next(a))#输出2
print(next(a))#输出3
#每执行一次print(next(a))就依次输出一个元素
生成器-send(generator)
  • a = yield 1 这个表达式,如果这个表达式只是x = 1,相信每个人都能理解是把1的值赋值给了x.
  • 而现在等号右边是一个yield 1,所以先要执行yield 1,然后才是赋值.
  • yield把1值返回到了调用者那里,因为执行等号右边的yield就是暂停,所以不会对a赋值
  • 那这个表达式的下一步操作:赋值,却换句话说a = yield 1 只执行了一半而send()里面的值的作用是把值传进当前的yield.
'''
    send使用
'''
def gen():
    i = 0
    while i < 5:
        temp = yield i  #不是赋值操作
        #使用了yield之后是一个生成器
        print(temp)   #因为 yield 之后返回结果到调用者的地方,暂停运行 ,赋值操作没有运行
        i+=1
a = gen()
print(next(a))
print(next(a))
print(a.send('王大锤'))  #可以将值发送到 上一次yield的地方

Flink Web UI 如何使用和调试保姆级教程(持续更新) Running Jobs(运行中的作业):显示正在运行的所有 Flink 作业的列表。每个作业都有一个独特的 Job ID,可以点击进入查看作业的详细信息。Completed Jobs(已完成的作业):显示已经完成或取消的作业列表。:显示当前集群中所有 TaskManager 的健康状态,包括 CPU 使用率、内存使用情况、Slot 数量等。Job Manager Configuration(JobManager 配置):显示 JobManager 的一些配置参数,帮助调试和优化 Flink 集群。 阅读详情

相关推荐

实用电路精讲系列---ACDC开关电源

AC/DC开关电源工作原理及应用解析 AC/DC开关电源通过高频开关技术将交流电转换为稳定直流电,核心流程包括整流滤波、高频开关转换、反馈稳压和隔离保护。典型应用涵盖智能断路器、车载充电机、光伏逆变器等多个领域,采用不同拓扑结构和功率器件满足各场景需求。文章详细分析了基于LT1103的实用电路,包含输入整流、开关稳压、多级滤波等关键模块,并阐述了同步整流和多级滤波对提升效率稳定性的作用。这种电源技术通过高频开关切换+变压器耦合+闭环反馈,实现了高效紧凑的电能转换,在各工业领域具有广泛应用价值。

weixin_40590799的博客 2585

python中的yield和return—迭代器和生成器

yield和return有什么区别?什么事生成器?什么又是迭代器?他们都有什么作用?简单理解的话yield=return,返回函数体处理结果的!yield本身是一个生成器,所以使用return返回的是我们常见的一些object(eg:list、dict、等),使用yield返回的是一个迭代器对象!

诡途的博客 1万+

电阻、电容、电感的实际等效模型

1、电阻的等效模型 2、电容的寄生参数 3、电容的等效参数 4、理想铝电解电容与实际铝电解电容的区别 5、电感的等效模型  

鸟宿江边树的博客 4万+

python返回迭代器_怎么在python中利用next返回迭代器

怎么在python中利用next返回迭代器发布时间:2020-12-15 15:15:52来源:亿速云阅读:60作者:Leah怎么在python中利用next返回迭代器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在python中有不少对于集合迭代的方法,我们把程序运行后的再一次循环叫做迭代,每一次都循环都可以看做是一...

weixin_34010461的博客 1014

全志T113 Tina5.0开发:(一)添加自己的板级支持包

3.验证 先执行 source build/envsetup.sh ,然后lunch,下图可见9就是我们自己添加的板子。2. 1)修改 t113-evb1.mk重命名为t113-ws_devboard。我使用的spinand,只需要修改openwrt里面的文件即可。以下内容仅作为自己笔记,如果错误欢迎留言指出。修改t113-ws_devboard。

u014428915的博客 1164

SIwave仿真手册——信号完整性仿真之S参数的提取(二)

上一篇简单了讲述了软件的各个操作界面,本次博客更新关于的仿真,因为第二章完整的内容比较多,所以分成好几篇博客进行分享。

luohuo9844的博客 1万+

五分钟就弄懂了,Python中的生成器(1)

比较生成器和列表生成式代码演示“”"运行结果: 生成器只有一个列表地址,并没有具体的数值“”"生成器和生成式的对比生成式可以直接打印列表,生成器只能打印地址生成式可以通过下角标获取元素,生成器不行生成器可以通过 __ next()__ 函数获得生成器(generator)的下一个返回值print(x)list_1.list_1.list_1.generator非常强大。

2401_84140816的博客 1062

川崎机器人 AS语言基础运动指令表

    功能简介 动作方式 参考坐标系 位置特性 X,Y,Z 角度特性 O,A,T 指令格式(距离单位毫米,时间单位秒,角度单位度 示例1 示例2 运 动 指 令 JMOVE 以关节移动到目标点 关节移动方式 基础坐标系 不受控 伪随机动作 JMOVE 目标点 JMOVE #yd JMOVE put1 LMOVE 以直线移动到目标点 直线移动方式

喜欢自学并分享经验的技术宅 9351

Python 生成器 (通俗讲解)

以通俗易懂的方式讲解关于Python生成器概念的剖解及其应用。

qq_23115737的博客 3338

RNA-seq分析:Step4(比对)

预处理之后的fastq文件,可以使用HISAT2软件将reads比对至参考基因组上。HISAT2软件将reads比对至参考基因组上的步骤如下:1. 对参考基因组进行建索引。对参考基因组进行预处理,生成索引文件,包括基因组序列的FM索引和SA索引。2. 将原始的reads进行预处理。包括去除接头序列、去除低质量的碱基,以及进行过滤,得到质量较高的、可靠的reads。3. 利用建立的FM索引和SA索引,将处理后的reads与参考基因组进行比对。首先,通过FM索引,快速找到与reads匹配的可能位置;

沉香best的博客 2599

【雕爷学编程】Arduino动手做(111)---震动提醒模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

雕爷学编程 1898

Python - 浅谈Python3中map返回的迭代器对象

什么是迭代器 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退。 两个基本方法iter()和next() ls = [1, 2, 3] it = iter(ls) # 创建迭代器对象 print(next(it)) # 输出迭代器的下一个元素 1 print(next(it)) # 2 print(next(it)) # 3 print(next(it)) # 直至结束,报错提示:StopIteration

DreamingBetter的博客 2093

详细解读经典跨模态对齐技术Q-Former代码

介绍BLIP2的博客层出不穷,介绍Q-Former的博客也不少,但是详细解读Q-Former代码的博客很少。这篇博客希望以代码为基础,讲明白Q-Former的原理和核心思想,并详细解读一些值得注意的细节。希望读者们能从这一经典技术中朝花夕拾,得到启发。

沉迷单车的追风少年 2459

Python中return和yield的区别,面试官不讲武德

示例代码如下:class TestYield:def gen_iterator(self):result_list = []for j in range(3):print(f"gen_iterator-{j}")result_list.append(j)return result_listdef call_gen_iterator(self):result_list = self.gen_iterator()for i in result_list:print(f"call_gen_iterator-{i}

m0_60721649的博客 866

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

10分钟了解Python黑魔法 Yield、Iterator、Generator_generate iterator yield

yield和return的区别,你理解了么?yieldgenerator和iterator的区别和联系,你理解了么?pythontip出品,Happy Coding!公众号:夸克编程。

2401_84121588的博客 1017

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python自学之迭代器生成器

迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 字符串,列表或元组对象都可用于创建迭代器: >>>list=[1,2,3,4] >>> it = it...

qq_40894300的博客 161

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Python自学11(迭代器和生成器)

深入理解下迭代器和生成器1、迭代2、迭代器3、for 循环的迭代过程4、可迭代(Iterable)对象5、自定义迭代器6、迭代器的好处7、生成器8、生成器表达式 1、迭代 迭代 在编程中、迭代指的是通过重复执行某个操作 不断获取被迭代对象中的数据 这样的每一次操作就是就是一次迭代。 简而言之、迭代是遍历的一种形式 for 循环 for 循环能不断从地从列表、元组、字符串、集合、字典等容器中取出新元素 每次取一个元素直至所有元素被取完、这种 for 循环操作就是迭代 for i in [1,2,3,4

weixin_51927215的博客 408

自学python实例_生成器

1.生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。 这里是讲迭代器的链接https://blog.youkuaiyun.com/qq_42223962/article/details/105668619 但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭...

sola_酱的博客 688

python生成器函数_自学Python4.7-生成器(方式一:生成器函数)

自学Python4.7 - 生成器(方式一:生成器函数)定义:生成器(generator)是一个包含yield关键字的函数,当它被调用的时候,在函数体中的代码不会被执行,而是会返回一个迭代器。(一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator);如果函数中包含yield语法,那这个函数就会变成生成器;)生成器是一个特殊的程序,可以被用作控制循环的迭代行为生成器类似于返回值为...

weixin_39883129的博客 290

python自学之《21天学通Python》(6)——迭代器、生成器与装饰器

本章主要介绍Python中迭代器、生成器和装饰器,内容包括: (1)迭代器及其创建; (2)生成器创建及其应用; (3)装饰器概念; (4)应用函数装饰器; (5)应用类装饰器。

yin1331102028yin的博客 460

初学者自学python哪本书好,自学python怎么入门

生成器的基础是迭代器,所以在学习本博客之前,一定要先学习迭代器利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前的状态生成下一个数据。为了达到记录当前的状态,并配合next()函数进行迭代使用,我们可以采用更加简便的语法,即生成器。生成器是一种特殊的迭代器。

2401_84668459的博客 884

Python基础教程:迭代器和生成器详细教程,Python入门零基础

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。

2401_84023604的博客 949

Python 生成器与迭代器

本文介绍了Python中迭代器、生成器表达式和生成器函数的基本用法。首先通过自定义迭代器类QuadraticGenerator演示了如何实现__iter__和__next__方法来创建无限平方数序列。然后比较了列表生成式[x*x for x in range(10)]与生成器表达式(x*x for x in range(10))的区别。最后重点讲解了生成器函数,通过yield关键字可以更简洁地创建迭代器,并以平方数生成器为例展示了生成器函数的优势。这些方法都能有效地创建可迭代对象,但生成器函数提供了更简洁高

你的指尖有改变世界的力量 437

Python基础教程:迭代器和生成器详细教程

list,truple,dict,str,都是Itrable不是Iterator,但可以通过iter()函数获得一个Iterator对象。print(isinstance(a,Iterable)) #True 可迭代的。print(type(gen)) # 返回的是一个生成器对象。print(type(gen)) # 返回的是一个生成器对象。学习中遇到问题没人解答?

2401_83817769的博客 580

自学Python:列表生成式、生成器、迭代器

列表生成式 列表生成式是python内置的一个用来创建列表的生成式,非常的强大和灵活! 比如说我们要生成一个包含1-10十个数字的列表,我们可以直接使用list(range(11))来生成: 但是我们如果要生成[1 * 1, 2 * 2, 3 * 3, 4 * 4, …, 10 * 10]这样一个列表呢,第一种方法时使用循环: 但是这样的话还是看起来非常的复杂,不太符合python简单的特性,...

gd0306的博客 524

浅析python中的迭代器和生成器

迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 list=[a,b,c,d] it = iter(list) # 创建迭代器对象 for i in it: ...

weixin_42799711的博客 551
上一篇: python自学篇九[ 函数(一):参数+对象]
下一篇: python自学篇九[ 函数(三):变量作用域+ATM+5个小练习]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值