串列 ( list ) 又稱為列表,就如同Scratch的清單或C語言的陣列,來記錄連續性的資料。如果在Scratch有學過清單,這一課應該很容易就能了解,以下我們先以Scratch清單來示範
建立一個清單用來存放因數
建立num變數存放使用者輸入欲檢測的數,建立i變數來當除數,迴圈每執行一次其值即加一
檢測num/i,例如使用者輸入5,迴圈執行5/1-->5/2-->5/3--5/4--5/5,將除後餘數為0的加入到清單,也就是將因數加入清單中。
最後檢查清單的長度,如果num的因數大於2個的,就表示它是合數,否則就是質數。
接下來就來先認識一下python的串列,也就是我們講的清單:
在 Python 裡,有三種方法可以建立串列:
「中括號 ( 方括號 )」,例如:fruit=['apple','orange','waterlemon']。
print(fruit[0])就會輸出apple,print(fruit[1])就會輸出orange,print(fruit[2])就會輸出waterlemon
「list()」,例如: a = list( ),建立空串列
「split() + 字串: 例如 a='apple,orange,waterlemon'-->fruit=a.split(','),這就會讓指定的分隔符號拆分成串列
Python 串列添加項目的方法:
「append() : append( ) 函式會將資料添加在一個串列的最後
「insert()」: 可以在指定的位置加入資料
接下來,我們就用python的串列+迴圈來試試質數判斷的程式
程式解說:
1 : 輸入欲檢測的整數放入num變數
2 : 建立一個空的串列
3~5 : 執行for迴圈來查測,從1開始到num
如果是因數就append的方式加入到串列尾端
6 : 檢查串列factor的長度並放入x變數
7~10 : 判斷x變數的大小,也就因數的個數,如果超過二個就不是質數,否則就是質數
在高級課程中我們將使用Numpy來代替串列處理資料喔!因為它除了效能比List好很多,使用上也更有彈性,尤其是在處理多維度資料。