ad

打开《Python 编程与应用实践》_成为Python大佬_4.4 迭代器

网友投稿 125 2023-11-13

【摘要】 本书摘自《Python 编程与应用实践》一书中第4章,第4节,由冯伟森,王建,杨宁主编。

4.4 迭代器

给定一个列表或元组,我们可以使用 for 循环来遍历这个列表或元组,这种遍历我们 称为迭代 (lteration)。

在Python 中,迭代是通过使用for…in…来实现的。for 循环可以直接遍历列表、元 组、字典、字符串等对象,这种对象被称为可迭代对象 (Iterable)。

可以被 next() 函数调用并不断返回下一个值的对象被称为迭代器 (Iterator)。

(1)isinstance()函数可判断一个对象是否为可迭代 (Iterable)对象,如: from collections import Iterable

print(isinstance(123,Iterable))#False, 数字

打开《Python 编程与应用实践》_成为Python大佬_4.4 迭代器

print(isinstance('apple',Iterable))#True, 字符串

print(isinstance([a','p','p','T,'e'],Iterable))#True,列表

print(isinstance({'name':" 李明"},Iterable))#True, 字典print(isinstance((‘ 李明',18,男),Iterable))#True, 元组

注意:判断是否为可迭代对象要先引入Iterable。

(2)isinstance() 函数可判断一个对象是否为迭代器 (Iterator) 对象,如: from collections import Iterator

print(isinstance(123,Iterator))#False, 数字

print(isinstance('apple',Iterator))#False, 字符串

print(isinstance(['a',p',p',T,'e],Iterator))#False, 列表

print(isinstance({'name':" 李明"},Iterator))#False, 字典

print(isinstance( (李明’,18,'男'),Iterator))#False, 元组

从上述可以看出,字符串、列表、字典、元组是Iterable, 却不是 Iterator 。这是因为 在Python 中迭代器对象是一个数据流,可以被 next() 函数调用,它的计算是惰性的,只 有在需要返回下一个数据时才会计算。

小 结

凡是可以用 for 循环遍历的对象都是 Iterable 类型。

凡是可以用next() 函数的对象都是Iterator 类型,只有在需要返回下一个数据的时候 才会进行计算。

习 题

1. 在现实世界中,很多情况下需要考虑的情形都超过两个。例如,来看一个根据年 龄段收费的游乐场:

4岁以下免费;

4~18岁收费5美元;

18岁(含)以上收费10美元。

使用if语句确定一个人所属的年龄段,并打印一条包含门票价格的消息。

2. 假设在游戏中刚射杀了一个外星人,请创建一个名为 alien_color 的变量,并将其 设置为'green','yellow '或'red':

如果外星人是绿色的,就打印一条消息,指出玩家获得了5个点。 如果外星人是黄色的,就打印一条消息,指出玩家获得了10个点。 如果外星人是红色的,就打印一条消息,指出玩家获得了15个点。

编写这个程序的三个版本,它们分别在外星人为绿色、黄色和红色时打印一条消息。 3. 学习成绩大于等于90分的同学用A 表示,60~89分之间的用B 表示,60分以下

的用C 表示。

4. 创建一个列表,其中包含你喜欢的水果,再编写一系列独立的 if 语句,检查列表 中是否包含特定的水果。将该列表命名为 favorite_fruits, 并在其中包含三种水果。编写 5 条if语句,每条都检查某种水果是否包含在列表中,如果包含在列表中,就打印一条消 息,如"You really like bananas!"。

5. 人生的不同阶段:设置变量age 的值,再编写一个if-elif-else结构,根据 age 的 值判断处于人生的哪个阶段。

如果一个人的年龄小于2岁,就打印一条消息,指出他是婴儿。

如果一个人的年龄为2(含)~4岁,就打印一条消息,指出他正蹒跚学步。

如果一个人的年龄为4(含)~13岁,就打印一条消息,指出他是儿童。

如果一个人的年龄为13(含)~20岁,就打印一条消息,指出他是青少年。

如果一个人的年龄为20(含)~65岁,就打印一条消息,指出他是成年人。

如果一个人的年龄超过65(含)岁,就打印一条消息,指出他是老年人。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python 可视化数据分析》_学会挖掘大数据的价值_3.3.4使用 lambda 表达式定义函数
下一篇:实战之路《Excel 数据处理与分析实战宝典_第2版》_2.7.5 联合查询、子查询
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×