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

软件工程导论考试通关秘籍:太原理工大学历年真题解析(附答案) 本文为太原理工大学《软件工程导论》考试提供高效备考指南,通过解析近六年真题,揭示高频考点如软件生命周期、UML建模和结构化设计等核心模块的命题规律。文章提供真题拆解、实战策略和避坑指南,帮助考生掌握图形转换题和简答题的应答技巧,助力考试通关。 阅读详情

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的地方

STM32F103RCT6的FLASH读写操作 STM32F103RCT6是一款常用的32位微控制器,它具有内置的FLASH存储器,可以用于存储程序代码和数据。在本文中,我们将详细介绍如何进行STM32F103RCT6的FLASH读写操作,并提供相应的源代码。写入数据时,我们通过将数据直接写入FLASH地址来完成。通过使用适当的API和规则,我们可以有效地读取和写入数据。写入FLASH时,我们需要按特定的规则进行编程。首先,我们需要包含适当的头文件和定义相关的宏和变量,以便在代码中使用FLASH API。类型的指针,我们可以直接读取FLASH中的数据。 阅读详情

相关推荐

Windows版MySQL8.4.2LTS解压直用(下载免安装-绿色-项目打包直接使用-含卸载)

安装前运行微软常用运行库全集(也可能称为依赖)关于MySQL8中相关参数配置,可通过。选择8.5.2LTS长期服务版。选中密码,右键会直接复制。

xzzteach的博客 1440

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

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

诡途的博客 1万+

从玩具到工业:手把手教你用Webots仿真Scara抓取(逆解实战篇)

本文详细介绍了如何在Webots仿真环境中实现Scara机械臂的逆解计算与抓取操作,涵盖从环境配置、逆运动学算法到轨迹规划与实时控制的完整流程。通过实战案例演示,帮助读者掌握机械臂逆解的核心技术,并应用于工业自动化场景,提升Scara机械臂的编程与控制能力。

weixin_30932215的博客 504

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

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

weixin_34010461的博客 1014

VS code平台调试AutoLISP程序教程

VS code平台调试AutoLISP程序教程

BearElder的博客 3183

最新虚拟串口 Virtual Serial Port Driver V11.0.1068 已经汉化

Virtual Serial Port Driver 11.0.1047 是一款功能强大的虚拟串口驱动程序,专为需要在开发和测试环境中模拟物理串口连接的用户设计。该版本于2023年4月5日发布,主要修复了在导入无效的COM端口捆绑设置时导致的崩溃问题,并优化了软件的自动更新功能。通过使用Virtual Serial Port Driver,用户可以在不依赖物理硬件的情况下,轻松创建和管理虚拟串口,极大地提高了开发和测试的效率。

中游鱼的博客 3万+

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

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

2401_84140816的博客 1062

量化风控核心:信用评分卡模型的设计与迭代全流程

◦ 动态策略适配:根据评分卡结果动态调整风控流程——高分用户(>750分)秒级放款,中低分用户(600-700分)触发补充资料提交,低分用户(<600分)直接拒绝。◦ 特征有效性监控:每月计算特征IV值,对IV<0.1的低效特征(如“用户星座”)进行淘汰,同时引入新特征(如电商消费数据)。某城商行通过增量学习,评分卡PSI值长期稳定在0.1以下。◦ 数据筛选:整合征信数据(逾期记录、查询次数)、行为数据(消费频次、还款习惯),某银行评分卡纳入150+维度特征,覆盖用户偿债能力、意愿、稳定性等维度;

2501_91651383的博客 1483

Python 生成器 (通俗讲解)

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

qq_23115737的博客 3338

CocosCreator视频播放黑屏?手把手教你封装VideoPlayer组件解决Web环境问题

本文针对Cocos Creator在Web环境下视频播放黑屏等常见问题,提供了一套工程化的VideoPlayer组件封装解决方案。文章深入剖析了浏览器自动播放策略、DOM样式隔离等核心挑战,并手把手教你实现一个健壮的管理器,涵盖兼容性处理、性能优化与内存管理,确保视频播放稳定流畅。

plum99的博客 598

某城商银行生产容器云平台详细设计方案分享及经验总结

AS3模式的CIS容器部署在K8S集群内,作为F5的控制器,CIS容器通过对K8S集群内Configmap资源进行监控,将Configmap资源中的内容转化为F5的配置,将配置推送给 F5 ,CIS容器还通过K8S标准的API接口完成业务发现和实时监听集群内Pod的变化,一旦Pod发生变化,相应的更新会及时推送给F5,并完成更新。容器技术发展非常迅速,现在应用大多以容器作为承载介质,前两年在容器云上承载的应用类型主要是Web类,随着容器云领域的不断发展,越来越多的应用类型将迁移至容器云,包括有状态应用。

qq_61890005的博客 856

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

用 CDS View I_APARToleranceGroup 管理客户与供应商收付差异容差:配置语义、字段解读与 ABAP 落地实践

财务共享服务中心常面临小额差异处理的挑战,SAP通过"客户/供应商容差组"机制实现自动清账规则配置。CDS视图I_APARToleranceGroup将配置数据转化为可查询维度,包含宽限天数、固定现金折扣等关键业务参数。该视图支持按公司代码和容差组查询差异处理策略,可用于报表开发、主数据校验和接口合规检查,帮助财务团队高效管理海量小额交易差异,减少手工操作。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 127

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

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

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

2401_84121588的博客 1017

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python自学之迭代器生成器

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

qq_40894300的博客 161

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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、付费专栏及课程。

余额充值