Function and Array === 資料科學與問題解決_week04HW 王辰禎, DCT, NTCU(Taiwan) --- #### 3/14Homework : 課本作業p.1-8的第二題 有一筆華氏的溫度資料,請算出對應的攝氏溫度資料 Fs = [0, 50, 100, 200] **使用函數的方式撰寫** (可參考範例1-8) 請使用學號當檔名,將檔案(學號.ipynb)使用google 表單繳交 *google 表單網址: https://docs.google.com/forms/d/e/1FAIpQLSdkJgYWoQTcQLcrNCEHYRpnhX9hxlk8Nw_zskeXRYYWlzj9Lg/viewform?usp=sf_link 上傳期限: 113/3/21 23:59前 --- #### 創建副函式 ```python #格式 def 函式名稱(輸入值): return 回傳值 ``` 我們要將華氏溫度轉攝氏溫度**數次**,故將溫度轉換的公式(程式碼)寫在副函式中。 期望效果: 將華氏溫度丟進函式,return 攝氏溫度 ```python def fConvertC(temperature): return ( round( (temperature - 32) * 5 / 9 , 2) ) ``` 此處的temperature像是區域變數(只可在此函式用), (華氏-32)乘以9分之5 *round()用於四捨五入,格式為round( 數值, 小數點位數)。 --- #### 主函式 ```python #兩陣列初始值 arr_f = [0, 50, 100, 200] arr_c = [] #start for i in range( len(arr_f) ): arr_c.append( fConvertC(arr_f[ i ]) ) ``` 重複做...(某事)...,我們應該要運用迴圈Loop去完成重複的動作,這裡我用for loop,i從 0---跑到-->陣列長度(len(arr_f))。 *len(arr_f)--> 4,故range(4)-->0, 1, 2, 3。 呼叫副函式fConvertC(),將華氏溫度丟進去(arr_f[ i ]),並將回傳值加進攝氏陣列array(arr_c)。 ##### hint : 陣列array的動作 | 動作 | 函式 | 函式格式 | | -------- | -------- | -------- | |末端加入元素|array.append()| array.append(元素)| |任意位置插入元素|array.insert()|array.insert(位置, 內容)| |刪除最後一元素|array.pop()|array.pop()| |刪除任一元素(index)|array.pop(i)|array.pop(位置索引值)| |刪除某一元素(content)|array.remove()|array.remove(元素內容)| --- #### 列印輸出陣列(就是那麼簡單!) ```python print( arr_c ) ``` --- #### 其他做法1 沒規定要將輸出之攝氏溫度放進陣列array,直接印出 ```python def fConvertC(temperature): return ( round( (temperature - 32) * 5 / 9 , 2) ) arr_f = [0, 50, 100, 200] #start for i in range( len(arr_f) ): print( fConvertC(arr_f[i]) , end='、') ``` 輸出結果 : -17.78、10.0、37.78、93.33、 --- #### 其他做法2 再者,直接在副函式運算完時印出,主程式只迴圈呼叫副函式 ```python def fConvertC(temperature): print ( round( (temperature - 32) * 5 / 9 , 2) ) arr_f = [0, 50, 100, 200] #start for i in range( len(arr_f) ): fConvertC(arr_f[i]) ``` 輸出結果 : -17.78 10.0 37.78 93.33 *輸出為1行、4行,差別在於print的格式,參考week01的print說明如下: `print(sth1,sth2, sep='', end='' )` 如果要輸出不同型態,可以用逗點隔開,sep控制各項間隔之格式,end控制print完成之後的格式(e.g. 換行\n, 、,空兩隔 ......等自訂格式) --- #### 其他參考資料 : ###### 函數使用 1. [(iT邦幫忙)[Day05] 函數和模組的使用](https://ithelp.ithome.com.tw/articles/10217761) ###### 是陣列?還是串列? 2. [(iT邦幫忙)[資料結構] 陣列 (Array) & 串列 (Linked List)](https://ithelp.ithome.com.tw/articles/10203422) ###### 陣列Array and 串列List的基本操作 3. [(docs.python.org)進一步了解 List(串列)](https://docs.python.org/zh-tw/3.13/tutorial/datastructures.html) --- #### **同學可以嘗試寫寫看,但如果需參考,自己試著key一遍,也跟直接Ctrl.+ C、Ctrl.+V不一樣喔~**