for 循环是 Python 中的通用序列迭代器:它可以单步遍历任何有序序列中的元素。for 语句适用于字符串、列表、元组、其他内置
可迭代对象和类创建的新对象。
for 通常比 while 循环更容易编码并且运行效率更高,当需要遍历一个序列时,首先要考虑for循环。一般而言,当对象有特定的长
度时,可以使用 for 循环,没有时使用 while 循环。例如:使用 for 循环遍历目录中的文件、文件中的字符、列表中的元素等。无
论是否知道长度,所有这些都有自身特定的长度。但是在游戏中,一般使用 while 循环,因为不知道用户什么时候关闭程序。
下列代码就是for循环的基本格式,里面是需要循环执行的内容:
for target in sequence:
print(target)
Python 在运行 for 循环时,会将序列对象中的元素一一赋值给目标,并执行一次循环体。循环体通常使用赋值目标来引用序列中
的当前项,就好像它是一个在序列中步进的光标。
在 for 中用作赋值目标的名称通常是 for 循环体范围内的变量,也就局部变量。它可以在循环体内更改,但当控制再次返回循环顶
部时,将自动设置为序列中的下一项。在循环之后,这个变量通常是最后访问的项目,也就是序列中的最后一个项目,除非循环
以break语句退出。
下面这个例子,我们从左到右依次将名称 x 分配给列表中的三个元素,每次执行 print 语句。因为 print 函数默认为换行符,所以
每个元素在打印时都是一个新行。在第一次迭代中 x=‘spam’,第二次迭代 x=‘eggs’,第三次迭代 x=‘ham’。
Python学习交流Q群:906715085
for x in ['spam', 'eggs', 'ham']:
print(x)
计算序列中元素总和。
total = 0
for i in [1,2,3,4]:
total = total + i
print(total)
也可以遍历任何数据类型,比如,我们遍历一个字符串,并在每个字母之间留一个空格将其打印出来。
word = 'hello'
for letter in word:
print(letter, end=' ')
当循环遍历元组序列时,可以将序列中的元素赋值给目标元组,序列中元组的项目依次赋值给目标元组对应的元素。
t = [(1,2), (3,4), (5,6)]
for (a,b) in t:
print(a,b)
d = {
'a':1, 'b':2, 'c':3}
for key, value in d.items():
print(key, value)
t = [(1,2), (3,4), (5,6)]
for both in t:
a,b = both
print(a,b)
我们不一定要在for循环中对应的赋值目标,也可以在循环体中对赋值目标进行拆分。
for 循环也可以嵌套,使用内置的 range() 函数返回一个列表,为每个循环生成数字 0-2。每个 i 循环的内部 j 循环循环。在下面例子中,每个循环运行 3 次,总共是9次。
for i in range(3):
for j in range