天天看點

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 循環功能,強大....