Python第五节:迭代器、生成器和修饰器的学习

Python第五节:迭代器、生成器和修饰器的学习

一、迭代器

定义:对list,tuple,dict,str等数据类型使用for…in的循环语法,从其中依次取出数据,这个过程叫做遍历,也叫迭代。迭代是访问集合元素的一种常用的方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。

例子:
		list=[1,2,4,6]
		it=iter(list)											#iter()创建迭代器对象
		print(type(it),it,next(it),end=",")						#next()输出迭代器的下一个元素
		for i in it:
		    print(i)			
>>>><class 'list_iterator'> <list_iterator object at 0x0000000009E592B0> 1,2
>>>>4
>>>>6

二、生成器

定义:使用了 yield 的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

例子:
		def ChiHuo(name):
		    print("%s准备吃包子了"%name)
		    while True:
		        baozi = yield       			#yield 表示生成器的关键字
		        print("包子[%s]来了,被[%s]吃了!" %(baozi,name))	
		a = ChiHuo("张三")
		a.__next__() 				 			#生成器中正用这个方法来打印结果
		a.send(2)								#这个方法即可以打印也可以传输出结果
>>>>张三准备吃包子了
>>>>包子[2]来了,被[张三]吃了!

三、修饰器

定义:本质是函数,就是为了其他函数添加附加功能(装饰其他函数)
遵循的原则:1、不能修改被装饰函数的源代码 2、不能修改被装饰函数的调用方式

例子:
		import time
		def hemer(func):
		    def wad():
		        start_time=time.time()
		        rec=func()
		        end_time=time.time()
		        print(start_time-end_time)
		        return rec
		    return wad
		@hemer    #runc=hemer(runc)
		def runc():
		    time.sleep(1)
		    print("库")
		    return "你好酷"
		rec=runc()
		print(rec)
>>>>库
>>>>-1.000057458877563
>>>>你好酷
加认证的完整修饰器:
				def Pan_Duan(Jg):
				    def Fang_F(Fa):
				        def Suan_F(*args,**kwargs):#列表参数显示用一个*,字典参数用两颗**
				            if Jg == "JF":
				                print("这是加减法")
				                w = Fa(*args,**kwargs)  #运行调用方法, run
				                Gong_gong(w)
				                return w
				            elif Jg == "CF":
				                print("这是乘除法")
				                Gong_gong(Fa(*args, **kwargs))
				                return Fa(*args, **kwargs)
				        return Suan_F
				    return Fang_F #返回Fang_F 地址值
				def Gong_gong(w):
				    if w % 2 == 0:
				        print("%d:为偶数"% w)
				    else:
				        print("%d:为奇数"% w )
				@Pan_Duan(Jg = "JF")#括号的内容用来做认证用的J
				def Jia_F(x,y):
				    z = x + y
				    print("x+y=",z)
				    return z
				@Pan_Duan(Jg = "jF")
				def Jian_F(x,y):
				    z = x - y
				    print("x-y=",z)
				    return z
				@Pan_Duan(Jg = "CF")
				def Cheng_F(x,y):
				    z = x * y
				    print("x*y=",z)
				    return z
				@Pan_Duan(Jg = "cF")
				def Chu_F(x,y):
				    z = x // y
				    print("x/y=",z)
				    return z		    
				    
				Jia_F(int(input("请输入X:")),int(input("请输入Y:")))
>>>>请输入X:12
>>>>请输入Y:12
>>>>这是加减法
>>>>x+y= 24
>>>>24:为偶数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值