巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from

一.今日主要内容总览(重点)

1.生成器(目的:帮助我们创建对象)    (1)生成器的本质就是迭代器    (2)一个一个的创建对象    (3)创建生成器的方式:        1.生成器函数        2.通过生成器表达式来获取生成器        3.类型转换(看不到)

2.生成器函数(重点)    (1)生成器函数中包含 yield关键字,返回数据和return差不多    return会立即结束和这个函数的执行    yield 可以分段的执行一个函数

(2)大坑(五星重点):      生成器函数在执行的时候返回生成器,而不是直接执行次函数

(3)能向下执行的两个条件:        __next__(),执行到下一个yield        send(),执行到下一个yield,给上一个yield位置传值

(4)所有的生成器都是迭代器,都可以直接使用for循环        都可以使用list()函数来获取到生成器内所有的数据

(5)生成器中记录的是代码而不是函数的运行        def func():            print(‘我的天哪‘)

yield ‘宝宝‘        gen=func() #创建生成器,此时运行会把生成器函数中的代码记录在内存        当执行到__next__(),运行此空间中的代码,运行到yield结束

(6)生成器    优点:节省内存,生成器本身就是代码,几乎不占用内存    特点:惰性机制,只能向前,不能反复

3.各种推导式(诡异)    列表推导式   [结果 for 循环 if]    字典推导式   {结果(k,v) for 循环 if}    集合推导式   {结果(k) for 循环 if}

4.生成器表达式(重点)    (结果 for循环 if)

二.今日内容大纲

1.生成器函数

2.各种推导式

3.yield from

三.内容详解

1.生成器函数

2.各种推导式

3.yield from

原文地址:https://www.cnblogs.com/studybrother/p/10105570.html

时间: 2024-11-09 22:56:25

巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from的相关文章

python 全栈开发,Day13(迭代器,生成器)

一.迭代器 python 一切皆对象 能被for循环的对象就是可迭代对象 可迭代对象: str,list,tuple,dict,set,range 迭代器: f1文件句柄 dir打印该对象的所有操作方法 s = 'python' print(dir(s)) 执行输出: ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__

巨蟒python全栈开发-第8天 文件操作

一.文件操作 今日大纲: 1.文件操作->open() open 打开 f=open(文件路径,mode='模式',encoding='编码格式') #python最最底层操作的就是bytes 打开一个文件的时候获取到的是一个文件句柄(#相当于插了一根管子) 2.mode:高频: r r+ rb w wb a了解: w+ a+ ab r+b w+b a=b 3.文件操作中关于文件句柄的相关操作 seek tell4.实际操作,文件修改(重点) DAY8-文件操作 本节主要内容: (1)r模式(2

巨蟒python全栈开发linux之cento9

1.docker入门学习 查看机器中已经启动的所有的进程. 2.docker常用命令学习 3.docker学习3 4.dockerfile与镜像 5.docker私有仓库 6.rabbitmq介绍与安装 7.rabbitmq的队列使用 8.rabbitmq的持久化队列 9.linux安装pycharm开发. 原文地址:https://www.cnblogs.com/studybrother/p/10672358.html

巨蟒python全栈开发-第7天 基本数据类型补充&深浅拷贝

1.基本数据类型补充 2.深浅拷贝 DAY5-基本数据类型(基本数据类型补充&深浅拷贝) 本节主要内容: 1 (1)#1.'''#字符串是不可变的数据类型lst=['alex','dsb','wusir','xsb']#大烧饼,小烧饼s='_'.join(lst) #使用前面的字符串,对后面的列表进行拼接,拼接的结果是一个字符串print(s)'''(2)'''#split() 根据你给的参数进行切割,切割的结果是列表 s='alex_dbs_wusir_xsb'lst=s.split("

巨蟒python全栈开发数据库前端8:jQuery框架2

1.事件 2.批量操作 3.事件冒泡 4.事件委托 1.事件 常用事件 click(function(){...}) hover(function(){...}) blur(function(){...}) focus(function(){...}) change(function(){...}) //内容发生变化,input,select等 keyup(function(){...}) mouseover 和 mouseenter的区别是:mouseover事件只要你在绑定该事件的对象上移动

巨蟒python全栈开发linux之cento8

1.复习路飞部署学习 2.mysql数据库远程访问 3.mysql主从复制 4.redis安全方式启动 5.redis数据类型 6.redis发布订阅 7.redis持久化 8.redis哨兵 9.redis哨兵搭建 10.redis集群搭建 原文地址:https://www.cnblogs.com/studybrother/p/10657663.html

巨蟒python全栈开发flask目录

预习1: 1.FlaskWeb框架: https://www.cnblogs.com/DragonFire/category/1246076.html 人工智能技术应用: https://www.cnblogs.com/DragonFire/category/1239207.html 原文地址:https://www.cnblogs.com/studybrother/p/10672384.html

巨蟒python全栈开发flask10 项目开始2

1.websocket异常处理 2.注册+登录+自动登录 3.user_info&&toy_manager 4.创建二维码 5.扫码页面低版本 6.扫描二维码&&数据校验 7.绑定玩具 8.玩具开机 9.AppWebsocket断开重练&&MuiFire调用WS事件. 原文地址:https://www.cnblogs.com/studybrother/p/10751561.html

python全栈开发【补充】map函数和reduce函数的区别

①从参数方面来讲:map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数.reduce()函数:reduce() 第一个参数是函数,第二个是 序列(列表或元组).但是,其函数必须接收两个参数. ②从对传进去的数值作用来讲:map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数"作用"一次:reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继