設想同樣,若是咱們要輸出5個*,用for循環要這麼寫
for i in range(0, 5):
print '*'
若是想讓這5個*在同一行,就在print語句後面加上逗號
for i in range(0, 5):
print '*',spa
但若是我想要這樣一個圖形,怎麼辦?
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
固然,你能夠循環5次,每次輸出一行「* * * * *」。那若是再進一步,這樣呢?
*
**
***
****
*****debug
除了你本身動手打好一個多行字符串外,也可讓程序幫咱們解決這種問題,咱們須要的是兩個嵌套在一塊兒的循環:
for i in range(0, 5):
for j in range(0, 5):
print i, j
第二個for循環在第一個for循環的內部,表示每一次外層的循環中,都要進行一遍內層的循環。
看一下輸出的結果:
0 0
0 1
0 2
0 3
0 4
1 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個*,就會換行。ip
要輸出第二個三角圖案時,咱們須要根據當前外層循環的序數,設置內層循環應當執行的次數。
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在這方面作得不太好,雖然也能夠步進調試,可是很麻煩且不直觀,因此就不推薦去用了。循環