4.1遍历整个列表
你经常需要病历列表的所有元素,对每个元素执行相同的操作,例如,在游戏中,可能需要将界面元素平移相同的距离,对于包含数字的列表,可能需要对每个元素执行相同的统计运算,在网站中可能需要显示文章列表中的每个标题,需要对列表中的每个元素都执行相同的操作,是可使用python中的for循环。
例如,下面使用for循环来打印魔术师名单中的所有名字:
magicians=[‘hy’,‘zl’,‘yry’]
for magician in magicians:
print(magician)
首先我们像之前一样定义了一个列表,接下来定义了一个for循环,这行代码让py从列表中取出一个名字,将其与变量magician相关联,最后让py打印前面付给变量magician的名字,这样对于列表中的每个名字py都将执行重复执行上面的代码行,结果:hy
zl
yry
4.1.1深入研究循环
循环这概念很重要。就是一直转圈圈,当列表中没有其他职的时候,程序就此结束,刚开始使用循环式情牢记,对于列表中的每个元素都将执行循环指定的步骤,而不管列表包含多少个元素,如果列表包含100万个元素py就重复执行指定的步骤,100万次血通常速度非常快,另外,编写for循环时,可以给一次与列表中每个值相关联的临时变量指定任意名称。
4.1.2在for循环中执行更多操作
在for循环中,可对每个元素执行任何操作。
例如:
magicians=[‘hy’,‘zl’,‘yry’]
for magician in magicians:
print(f"{magician.title},that was a great trick!")
相比于前一个势力唯一的不同是为每位魔术师打印了一条以其名字为抬头的消息,这个循环第一次迭代式变量magician的值为hy,因此py打印的第一条消息的抬头为"Hy"以此类推。
输出:
Hy, that was a great trick!
……
在for循环中,想包含多少行代码都可以每个缩进的代码行都是循环的一部分,将针对列表中的每个值都执行一次,因此,可对列表中的每个值执行任意次数的操作。比如再添加一行代码
magicians=[‘hy’,‘zl’,‘yry’]
for magician in magicians:
print(f"{magician.title},that was a great trick!")
print(f" I can’t wait to see your trick,{magician.title().\n}
两个函数调用print都缩紧了,因此,他们都将针对列表中的美味魔术师执行一次第二个函数,调用print中的换行符,在每次迭代都插入一个空行,从而整洁的将针对各位魔术师的消息编组
## 4.1.3在for循环结束后执行一些操作
For循环结束后怎么办呢?通常你需要提供总结性输出或者执行程序,必须完成其他任务,在for循环后面,没有缩进的代码,都只执行一次,不会重复执行例如想要再打印给各位魔术师的消息,后面打印一条给全体魔术师致谢的消息,需要将相应的代码放在for循环后面,且不缩进。
magicians=[‘hy’,‘zl’,‘yry’]
for magician in magicians:
print(f"{magician.title},that was a great trick!")
print(f" I can’t wait to see your trick,{magician.title().\n}
print(“Thank you,everyone.That was a great magic show!”)
开头两个函数调用print针对列表中的每位魔术师重复执行,然而,第三个函数调用print没有缩进,因此,只执行一次。
## 4.2避免缩进错误
py根据缩进来判断代码行与前一行代码的关系,在前面的示例中向各位魔术师显示消息的代码好像是for循环的一部分,因为他们缩进了py通过使用缩进让代码更易读,简单的说,他要求你使用缩进,让代码整洁而结构清晰,再教场的皮歪程序中,你将看到成缩进程度各不相同的代码快,从而对程序组织结构有大概的认识。
开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误。
## 4.2.1忘记缩进
如题目所说。
## 4.2.2忘记缩进额外的代码行
有时候,循环能够运行且不会报告错误,但结果可能出乎意料,试图在循环中执行多项任务,却忘记缩进其中的一些代码行,就会出现这种情况。
## 4.2.3不必要的缩进
如果你不小心缩进了无需缩进的代码行py将指出这一点。
speak=“123.py”
print(message)
函数调用print无需缩进,因为它并非循环的组成部分,因此,py将指出这种错误。
## 4.2.4循环后不必要的缩进
## 4.2.5遗漏了冒号