使用excel统计学生成绩让相同学生分数名次相同-英雄云拓展知识分享
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, 数字
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~