1. 程式人生 > 實用技巧 >Python趣味入門6:能計數的迴圈語句for

Python趣味入門6:能計數的迴圈語句for

上一篇講了while語句,朋友們是否已經摸到迴圈的大門了,其實在實際當中for迴圈遠比while迴圈更加常用。由於涉及集合型別,咱們先從數列開始。

1、range數列

在數學上數列表達是一組有順序的數字,在Python裡可以很容易使用range()函式(並不是函式其實是類)生成一組整數數列,用法如下:

range(開始,結束,步長)

  

說明:上述程式碼將會生成從“開始”(預設0)到“結束”(不包括)的整數數列,並且以“步長”(預設1)為間隔。注意range()返回的,其實是range類的例項,因此你直接print()顯示的話,只能顯示出range本身,結果是看不出來的,如下程式碼生成0,1數列。

>>> range(2) 
range(0, 2) 

上面在提示符後輸入語句後,發現返回的結果還是range(0,2)本身,只是補齊了預設引數,並沒有什麼結果。

找開IDLE我們做幾個小實驗:

在>>>提示符下輸入range(10),生成0-9數列:

>>> list(range(10)) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> 

  說明:程式碼中我們使用了list()函式,此函式用來把range()數列轉換成"列表" 這個型別,否則看不到數列的結果。

2、for 迴圈

for迴圈也被稱為列舉迴圈,語法如下:

for 變數 in 集合:     
    子語句塊
主語句

在這裡需要對上述的“變數”進行說明,for 後跟的變數由程式設計師自由命名,在迴圈體內使用的時候,變數由for語句在每次迴圈時自動賦值為集合中的單個元素。下面程式可以計算1-100的累加:

result = 0 #結果變數:儲存每一步的計算結果 
for n in range(1,101):      
    result += n #把計算結果累加進結果變數 
print(result) 

3、小任務

傳說靖安司查出了狼衛的祕密基地在一個10層金字塔裡,為完成消滅恐怖分子的任務要求畫出十層金字塔的樣子。

分析過程

上述金字塔可以分成兩個部分,左半邊(不包括中間列)為N部分。 重點分析N部分每行星號個數的變化,第0行為 0 個,行號對應從上到下為 0~9 的順序數列,如果設 N部分星號的數量為變數n ,可以得出金字塔每一行星號的總數量公式:2*n +1。
再次分析N部分的空格變化,第n行星號前空格的個數變化規律如下,第 0 行有 9 個空格,得出自上而下空格數量依次是 9,8,7,...,0,得出空格數量公式為9-n 。

此外,字串的乘法運算可以進行重複,'0' * 8 就表示 '00000000'

根據上面的分析你可以寫出程式了麼,如下?

for n in range(10): 
    print(' ' * (9-n) + '*' * (2*n+1)) 

 

緊跟小牛叔,動圖教程更清晰。