「for」和「in」是 Python 的關鍵字,兩者之間可以放置使用者自訂的變數,而「in」後則可接一個序列 (Sequence),串列 (list)、字串 (str)、元組 (tuple) 等皆是序列的一種。表示方式如下
for iterating_var in sequence:
statements(s)
break
else:
迴圈會依序從序列取得元素,並將元素指定給前面自訂的變數(此例為iterating_var),再執行迴圈裡的內容,直到序列每一元素都被取出過為止。
break 指令是強制由for迴圈跳出
else : else 中的指令在循環正常執行完(即 for 不是通过 break 跳出而中斷的)的情况下執行
例如下列在Python shell 中輸入下列指令
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> for i in range(5): ... print(i) ... 0 1 2 3 4 |
上面有使用到range()函数,range()可建立一个整數列表,一般用在 for 循環中
語法:range(start, stop[, step])
start:計數從 start 开始。沒指定數字初始值從 0 開始。例如range(5)等於range(0,5);
stop:計數到 stop 结束,但不包括 stop。例如:range(0,5)是[0, 1, 2, 3, 4]没有5
step:階層,沒指定數字初始值為1。例如:range(0,5)等於 range(0, 5, 1),step 也可以為負值
>>> for i in range(5): ... print(i) ... break ... 0 |
迴圈中出現break,就會強制跳出(結束)迴圈,所以只顯示第一個數字 0
>>> for i in range(5): ... print(i) ... else: ... print("Print OK!!") ... 0 1 2 3 4 Print OK!! |
迴圈中使用 else: 其實也可以不需要,只要將要執行的指令寫在 迴圈外,也可以達到相同效果
使用雙重迴圈,來寫九九乘法表,如下:
for i in range(1,6): #把6改成10
for j in range(2,6): #把6改成10
x=i*j
print(j , "X" , i , "=", x,end="\t") #用Tab來區隔,避免擠在一起
print()
2 X 1 = 2 3 X 1 = 3 4 X 1 = 4 5 X 1 = 5 2 X 2 = 4 3 X 2 = 6 4 X 2 = 8 5 X 2 = 10 2 X 3 = 6 3 X 3 = 9 4 X 3 = 12 5 X 3 = 15 2 X 4 = 8 3 X 4 = 12 4 X 4 = 16 5 X 4 = 20 2 X 5 = 10 3 X 5 = 15 4 X 5 = 20 5 X 5 = 25 |
一個階梯程式,每迴圈一次就增加一個 *
y="*"
for i in range(0,10): #0~9階
print(y," ",i+1) #顯示 * 及數字
y=y+"*" #增加一個* ,放進變數 y
如下:
* 1 ** 2 *** 3 **** 4 ***** 5 ****** 6 ******* 7 ******** 8 ********* 9 ********** 10 |
另一個階梯程式,增加一個縮排階梯
y="*"
print(y) #顯示 *
y=y+"*" #增加一個* ,放進變數 y
for j in range (9,0,-1): #設定9~1階,每次-1
print(y[0:j]) #顯示 *
* ** *** **** ***** ****** ******* ******** ********* ********** ********* ******** ******* ****** ***** **** *** ** * |
沒有留言:
張貼留言