1. 程式人生 > >Python for迴圈 基礎知識篇(重要)

Python for迴圈 基礎知識篇(重要)

今天又被自己shock到了,原來以為對range的理解蠻熟悉了......今天小測試一做又不行了,來看題目

codecademy上面要求列印一個以“O”為元素的5×5矩陣,第一要求是先列印5遍“O”,並聲稱5列

正確程式碼如下

board = []
for x in range(0, 5):                          #一開始完全沒看懂為什麼要取個range(0,5)
    board.append(["O"] * 5)                 #這執行語句裡面完全沒有x的蹤跡啊,和前面學的根本不一樣......前面學的裡面執行語句裡面都有for後面的元素x的

後來翻了些資料,感覺應該是這樣的.

for x in range(0,5)  其實是歷遍了[0,1,2,3,4],生成5個x,而對應每一次的x都執行了一遍board.append這個功能!!!

什麼意思呢?就是其實對於x來說,出不出現在下面的迴圈語句中,根本無所謂,可有可無,他背後實際上是提供了一個控制迴圈數量的功能啊啊啊啊啊啊啊!!!

另外,其實你不用range,也沒問題,只要元素數量可以提供給前面的x,就能控制迴圈次數,來看下面自己做的測試

board = []
for x in [3,4,5]:
    board.append(["O"] * 5)
print (board)

這個打印出的結果是如下

[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']]

看到沒?x對應了3次生成,所以執行了語句3遍........

甚至說!!!

board = []

for x in 'range':

    board.append(["O"]*5)

print (board)

in後面是一個字串'range',他實際也是可以提供5個元素'r' 'a' 'n' 'g' 'e',同樣,提供了5次迴圈數量的控制!!

列印結果為

[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']]

所以.......重新認識for 迴圈功能,強大....