首页 > 编程语言 >Python基础入门学习笔记 049 乱入:生成器

Python基础入门学习笔记 049 乱入:生成器

时间:2023-08-23 11:12:26浏览次数:67  
标签:10 False Python 生成器 yield next 乱入 True

所谓协同程序,就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。

生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。

一个函数中如果有yield语句,则被定义为生成器。

实例1:

 1 >>> def myGen():
 2     print("生成器被执行了!")
 3     yield 1   #暂停一次,相当于return,返回1
 4     yield 2     #暂停一次,相当于return,返回2
 5 
 6     
 7 >>> myG = myGen()
 8 >>> next(myG)
 9 生成器被执行了!
10 1
11 >>> next(myG)
12 2

像前面介绍的斐波那契的例子,也可以用生成器来实现:

 1 >>> def fibs():
 2     a = 0
 3     b = 1
 4     while True:
 5         a,b = b,a + b
 6         yield a
 7 
 8         
 9 >>> for each in fibs():
10     if each > 100:
11         break
12     print(each)

1
1
2
3
5
8
13
21
34
55
89

列表推导式表达:

100以内,能被2整除,但不能被3整除的所有整数

1 >>> a = [i for i in range(100) if not (i % 2) and (i % 3 )]
2 >>> a
3 [2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98]

字典推导式:

10以内是否为偶数

1 >>> a = {i:i % 2 == 0 for i in range(10)}
2 >>> a
3 {0: True, 1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False}

集合推导式:

1 >>> a = {i for i in [1,2,3,3,4,5,5,5,6,7,7,8]}
2 >>> a
3 {1, 2, 3, 4, 5, 6, 7, 8}

元组生成器推导式:

1 >>> e = (i for i in range(5))
2 >>> next(e)
3 0
4 >>> next(e)
5 1
6 >>> next(e)
7 2

 

标签:10,False,Python,生成器,yield,next,乱入,True
From: https://www.cnblogs.com/ybqjymy/p/17650667.html

相关文章

  • Python基础入门学习笔记 050 模块:模块就是程序
    什么是模块•容器->数据的封装•函数->语句的封装•类->方法和属性的封装•模块->模块就是程序命名空间爱的宣言:世界上只有一个名字,使我这样牵肠挂肚,像有一根看不见的线,一头牢牢系在我心尖上,一头攥在你手中,这个名字就叫做鱼C工作室计算机一班的小花……导入模块•......
  • Python学习 -- 类的继承
    类继承是面向对象编程中的重要概念,它允许我们创建一个新的类,通过继承已有的类的属性和方法,从而实现代码的重用和扩展。Python作为一门面向对象的编程语言,提供了强大而灵活的类继承机制。本篇博客将深入探讨Python中类继承的概念,通过详细的代码实例演示其用法。基本的类继承首先,让我......
  • Python基础入门学习笔记 039 类和对象:拾遗
    组合(将需要的类一起进行实例化并放入新的类中)实例:1classTurtle:2def__init__(self,x):3self.num=x45classFish:6def__init__(self,x):7self.num=x89classPool:10def__init__(self,x,y):11self.tu......
  • Python-OpenCV双目测距代码实现以及参数解读
    一、双目相机拍照后使用Matlab进行双目标定必看:USB双目相机的具体标定过程:https://blog.csdn.net/qq_40700822/article/details/124251201?spm=1001.2014.3001.5501主要参考:https://blog.csdn.net/dulingwen/article/details/98071584感谢大佬的分享!!!(*≧ω≦)!!二、标定后生成......
  • Python基础入门学习笔记 040 类和对象:一些相关的BIF
    一些相关的BIFissubclass(class, classinfo) 如果第一个参数(class)是第二个参数(classinfo)的一个子类,则返回True,否则返回False1>>>classA:2pass34>>>classB(A):5pass67>>>issubclass(B,A)8True9>>>issubclass(B,B)#......
  • Python基础入门学习笔记 041 魔法方法:构造和析构
     __init__(self[,...]) 方法是类在实例化成对象的时候首先会调用的一个方法1>>>classRectangle:2def__init__(self,x,y):3self.x=x4self.y=y5defgetPeri(self):6return(self.x+self.y)*27defgetArea......
  • Python基础入门学习笔记 038 类和对象:继承
    继承         子类               父类class DerivedClassName(BaseClassName):……实例:一个子类可以继承它的父类的所有属性和方法1>>>classParent:2defhello(self):3print('正在调用父类的方法......
  • Python基础入门学习笔记 036 类和对象:给大家介绍对象
    给大家介绍对象把乱七八糟的数据扔进列表里,称数据层面的封装把常用的代码段打包成一个函数,称语句层面的封装把数据和代码都封装在一起,称对象层面的封装对象 = 属性 + 方法对象可以从静态(属性)与动态(方法)两个特征来描述 OO(面向对象)的特征继承class Turtle:#Pytho......
  • Python基础入门学习笔记 037 类和对象:面向对象编程
    self是什么?Python的self其实就相当于C++的this指针。由同一个类可以生产无数对象,当一个对象的方法被调用的时候,对象会将自身的引用作为第一个参数传给该方法,那么python就知道需要操作哪个对象的方法了。1>>>classBall:2defsetName(self,name):3self......
  • Python基础入门学习笔记 032 异常处理:你不可能总是对的
    实例1:1file_name=input('请输入需要打开的文件名:')2file=open(file_name)3print('文件的内容是:')4foreach_lineinfile:5print(each_line)6file.close() Python标准异常总结 以下是Python内置异常类的层次结构:......