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不一樣喔~**