重复循环 ( for、while )
在程序执行的过程中,有时候会重复执行一些相同的运算,这时可以使用“循环”来处理这些重复且相同的程序码,大幅增加程序的可阅读性以及撰写程序的效率,本篇教学会介绍 for 循环与 while 循环,以及 break 中断命令与 continue 跳过命令。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
for 循环
“for 循环”的使用的方法为“for 變數 in 可迭代的物件:”,执行之后,for 循环会依序将可以迭代的对象取出,赋值给指定的变数 ( 可迭代的对象像是字串、串列、字典、集合...等 )。
for 循环内容执行的程序区块,采用缩排的方式 ( 参考:缩排 )。
for i in 'abc':
print(i) # a b c ( 字串 )
for i in ['a','b','c']:
print(i) # a b c ( 串列 )
for i in {'a','b','c'}:
print(i) # c b a ( 集合 )
for i in {'a':1,'b':2,'c':3}:
print(i) # a b c ( 字典 )
如果将 for 循环放在 for 循环里,就会形成“巢状循环”,巢状循环会先从“最内层”的循环开始执行,执行完毕后再执行外层的循环,下方的程序码,会先印出 b 的 1、2、3,印完后印出第一个 a 的 x,接着再次印出 b,依此类推。
for a in ['x','y','z']:
for b in [1,2,3]:
print(b)
print(a)
# 1 2 3 x 1 2 3 y 1 2 3 z
如果搭配文字的格式化 ( 参考:文字格式化 format ),就能利用巢状循环做出有趣的效果,下方的程序码,会将 x、y、z 结合 1、2、3。
for a in ['x','y','z']:
for b in [1,2,3]:
print(f'{a}{b}')
# x1 x2 x3 y1 y2 y3 z1 z2 z3
while 循环
“while 循环”是“根据条件判断,决定是否重复或停止”的循环,用法为“while 條件:”,如果条件判断为 True,就会不断执行循环内容,如果判断为 False,就会停止循环,下方的程序执行后,会不断将 a 增加 1,直到 a 等于 6 为止。
while 循环内容执行的程序区块,采用缩排的方式 ( 参考:缩排 )。
a = 1
while a<=5:
print(a)
a += 1
# 1 2 3 4 5
break 和 continue
在操作循环的过程中,可以使用“break 中断”和“continue 跳出”两个方法来“停止循环”,通常 break 和 continue 会搭配逻辑判断一同使用。( 参考:逻辑判断 ( if、elif、else ) )
break 和 continue 的差别在于 break 会将整个循环停止,而 continue 是将循环目前执行的程序停止,然后再次执行循环,下图为两者的执行差异。
下方的程序可以看出,因为内层循环使用了 break,碰到 b 为 1 的时候就会停止,就看不见 2 和 3。
for a in ['x','y','z']:
for b in [1,2,3]:
if(b==2):
break
print(f'{a}{b}')
print('ok')
# x1 y1 z1 ok
如果使用 continue,则会略过 b 为 2 的部分,直接跳到 b 为 3 的部分。
for a in ['x','y','z']:
for b in [1,2,3]:
if(b==2):
continue
print(f'{a}{b}')
print('ok')
# x1 x3 y1 y3 z1 z3 ok
微信扫码关注
抖音扫码关注