for
for 语句用于对可迭代对象中的元素进行迭代。语法如下:
for target_list in expression_list:
suite
else: # 可选子句
suite
对于简单语句可以写为一行,但不推荐。
表达式 expression_list 被求值一次,它应该产生一个可迭代对象。系统将为 expression_list 的结果创建一个迭代器,然后每一项会按标准赋值规则(详见见 赋值语句)被依次赋值给 target_list,每赋值一次执行一次语句下的代码。
当所有项被耗尽时,else 子句如果存在将会被执行,并终止循环。
for i in range(3):print(i)
0
1
2
for i in zip('123','abc'):
print(i)
('1', 'a')
('2', 'b')
('3', 'c')
for i,j in zip('123','abc'):
print(f'{i}->{j}')
else:
print('end')
1->a
2->b
3->c
end
for 循环会对 target_list 中的变量进行赋值。这将覆盖之前对这些变量的所有赋值,包括在 for 循环体中的赋值。
变量在循环结束时不会被删除,但如果序列为空,则它们根本不会被循环所赋值。
i = 'a'
for i in range(3):
print(i)
print(i)
0
1
2
2
for i in range(0):
print(i)
print(i)
2