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 迴圈功能,強大....