首页 > 编程语言 >微课--Python生成器函数定义与使用(19分钟)

微课--Python生成器函数定义与使用(19分钟)

时间:2023-06-10 14:03:46浏览次数:31  
标签:函数 迭代 19 元素 生成器 -- 对象 使用


8.5  生成器函数定义与使用(书稿节选)

如果函数中包含yield语句,那么调用这个函数得到的返回值不是单个值,而是一个包含若干值的生成器对象,这样的函数也称生成器函数。代码每次执行到yield语句时,返回一个值,然后暂停执行,当通过内置函数next()、for循环遍历生成器对象元素或其他方式显式“索要”数据时再恢复执行。生成器函数得到的生成器对象和4.3节生成器表达式得到的生成器对象一样,只能从前向后逐个访问其中的元素,并且每个元素只能使用一次。下面的代码演示了生成器函数的几种形式。

微课--Python生成器函数定义与使用(19分钟)_Python

运行结果为:

微课--Python生成器函数定义与使用(19分钟)_生成器_02

例8-4  编写生成器函数,模拟标准库itertools中cycle()函数工作原理。

解析:标准库itertools中的cycle()函数用来把有限长度可迭代对象中的元素首尾相接构成并返回一个无限循环的环,类似于原可迭代对象中的元素进行无限次的重复。在程序中,使用外层的while循环实现无限次重复,使用内层的for循环实现原可迭代对象中所有元素从头到尾的一次遍历。在生成器函数myCycle()开始把参数iterable转换为元组,是为了避免参数为map对象、生成器对象之类的惰性求值对象时每个元素只能使用一次的特点带来的错误。

微课--Python生成器函数定义与使用(19分钟)_发送消息_03

运行结果为:

微课--Python生成器函数定义与使用(19分钟)_发送消息_04

讲解视频:

公众号“Python小屋”

标签:函数,迭代,19,元素,生成器,--,对象,使用
From: https://blog.51cto.com/u_9653244/6454504

相关文章

  • Python小屋刷题软件2425道题目分类速查表
    “Python小屋”编程比赛正式开始Python小屋刷题软件客户端使用说明(视频讲解)Python小屋刷题神器最近升级的新功能介绍每次录入新题目时都会更新下面的分类表,请注意查看最新信息。客观题分类:Python基础知识:1-57内置函数、运算符:58-320列表、元组、字典、集合、切片、推导式:321-792选......
  • 教师节我用Python分析了336个赞美老师的句子,满满的幸福和开心
    首先祝天下所有老师教师节快乐!今天收到了很多微信、QQ、短信的祝福,有以前的学生发的,有现在的学生发的,有同事发的,有领导发的,有企业朋友发的。字里行间都洋溢着快乐和对教师这两个字的尊重!一一回复完信息之后,深感自己辞藻不够华丽,然后就在网上搜索了一些赞美教师的句子学习学习,学习之......
  • Python+tkinter+多线程实现文本自动翻页方便阅读
    任务描述:使用Python编写程序,使用tkinter创建界面,使用ScrolledText显示任意文本,然后自动上下翻页方便阅读。参考代码:运行结果:公众号“Python小屋”......
  • Python+pywin32操作Excel文件常用功能(268行代码+注释)
    问题描述:使用Python扩展库pywin32操作Excel文件。准备工作:安装Python,安装扩展库pywin32,安装Office或WPS。参考代码:运行结果:公众号“Python小屋”......
  • Python+Matplotlib绘制带误差线的柱状图
    任务描述:绘制如下图形,展示部分城市平均收入与平均房价以及误差波动范围,其中数据均为演示数据,准确数据请查询相关网站。下图中每个柱的高度表示平均值,黑色竖线表示误差范围,竖线两端数字分别为最小值和最大值。参考代码:公众号“Python小屋”......
  • Python爬取并简单分析2024年普通高校招生专业(专业类)选考科目要求
    任务描述:使用Python语言编写网络爬虫程序,采集山东省考试院发布的2024年普通高校招生专业(专业类)选考科目要求,然后统计不同要求的本科专业数量和专科专业数量。网页源代码分析与爬虫程序原理请参考:Python爬取2021年拟在山东招生普通高校专业(类)选考科目要求Python采集全国高校2020年拟......
  • Python逐块执行另一个Python程序中的代码观察运行过程
    任务描述:给定一个Python程序,编写程序逐块执行其中的代码,单行代码作为一个块来执行,选择结构、循环结构、异常处理结构、函数定义、类定义作为一个块来执行,每个块之间间隔1秒,以便观察执行过程。以Python+pywin32操作Excel文件常用功能(268行代码+注释)一文中的代码为例,编写程序逐块执行......
  • 使用Python检查实验教学大纲(Word文件)中前后信息是否一致
    问题描述:应选用教材的老师们要求,整理了一份与教材《Python程序设计(第3版)》配套的实验教学大纲,共45页72个实验项目。需要的老师可以联系董老师获取这个文件。在实验教学大纲中,核心内容有两块,一个是实验项目信息汇总表,部分内容如下图所示,实验教学大纲中第二个核心内容是每个实验项目......
  • 关于AWS-EC2-EBS-快照-或者AMI-创建的过程及原理
    对于AWSEC2的EBS创建快照Snapshot的原理逻辑,主要如下快照是异步制作的;时间点快照是立即创建的,但在快照完成(当所有已修改数据块都已转移到AmazonS3时)之前,其状态为 pending,很多大型初始快照或后续快照(其中的数据块已更改)可能需要几个小时才能完成。执行期间,正在进行的快照......
  • Python实现汉字人名按拼音或笔画顺序排序
    任务描述:编写Python程序,对给定的多个人名按笔画多少或拼音排序。主要思路:把每个汉字对应的笔画数量按Unicode编码顺序存入文本文件以便重复利用,内容如下图,所有数字存为一行,相邻数字使用英文半角逗号分隔。可以后台发送消息“汉字笔画”下载这个文件。对于给定的汉字获取Unicode编码......