python基礎教程共60課 第15課迴圈的巢狀

2021-07-08 17:54:37 字數 1565 閱讀 8866

python基礎教程共60課-第15課迴圈的巢狀

【python 第15課】 迴圈的巢狀

設想一樣,如果我們要輸出5個*,用for迴圈要這麼寫

for i in range(0, 5):

print '*'

輸出是:**

***每列印完一次,都進行換行。

如果想讓這5個*在同一行,就在print語句後面加上逗號

for i in range(0, 5):

print '*',

我這裡好像不行哦!

但如果我想要這樣乙個圖形,怎麼辦?

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

當然,你可以迴圈5次,每次輸出一行「* * * * *」。那如果再進一步,這樣呢?***

*******

*****

除了你自己動手打好乙個多行字串外,也可以讓程式幫我們解決這種問題,我們需要的是兩個巢狀在一起的迴圈:

for i in range(0, 5):

for j in range(0, 5):

print i, j

第二個for迴圈在第乙個for迴圈的內部,表示每一次外層的迴圈中,都要進行一遍內層的迴圈。

看一下輸出的結果:

0 00 1

0 20 3

0 41 0

...4 4

內層迴圈中的print語句一共被執行了25次。

i從0到4迴圈了5次。對應於每乙個i的值,j又做了從0到4五次迴圈。所以5*5一共25次。

所以如果要輸出乙個5*5的方陣圖案,我們可以

for i in range(0, 5):

for j in range(0, 5):

print '*',

print

我這裡行不通,跟上面的原因一樣。

注意:第二個print的縮排和內層的for是一樣的,這表明它是外層for迴圈中的語句,每次i的迴圈中,它會執行一次。

print後面沒有寫任何東西,是起到換行的作用,這樣,每輸出5個*,就會換行。

要輸出第二個三角圖案時,我們需要根據當前外層迴圈的序數,設定內層迴圈應當執行的次數。

for i in range(0, 5):

for j in range(0, i+1):

print '*',

print

這個也不行哦!

今天這裡又留下了乙個問題,怎麼樣才能在同一行裡面連續迴圈輸出資料呢????

內層的j每次從0到i+1進行迴圈。

這樣,當第一次i=0時,j就是range(0,1),只輸出1個*。

而當最後一次i=4時,j就是range(0,5),輸出5個*。

最後順便說下,如果有同學用的是pyscripter,或者其他第三方ide,可以通過debug中的step,檢視程式是怎樣一行一行執行的。idle在這方面做得不太好,雖然也可以步進除錯,但是很麻煩且不直觀,所以就不推薦去用了。

python基礎教程共60課 第24課if的巢狀

python基礎教程共60課 第24課if的巢狀 python 第24課 if的巢狀 和for迴圈一樣,if也可以巢狀使用,即在乙個if elif else的內部,再使用if。這有點類似於電路的串聯。if 條件1 if 條件2 語句1else 語句2else if 條件2 語句3else 語句4在上...

python基礎教程共60課 第2課print

直接在print後面加一段文本來輸出的話,需要給文字加上雙引號或者單引號。大家發現,print除了列印文字之外,還能輸出各種數字 運算結果 比較結果等。你們試著自己print一些別的東西,看看哪些能成功,哪些會失敗,有興趣的話再猜一猜失敗的原因。其實在python命令列下,print是可以省略的,預...

python基礎教程共60課 第4課輸入

python基礎教程共60課 第4課輸入 python 第4課 輸入 前print了那麼多,都是程式在向螢幕 輸出 那有來得有往,有借得有還,有吃。咳咳!那啥,我們得有向程式 輸入 資訊的辦法,才能和程式對話,進行所謂的 人機互動 python有乙個接收命令列下輸入的方法 input 注意,和pri...