9. 回傳多個值
(1) 用函式回傳2個值
以下是一個例子:
假設傳入一個成績的list,函式將同一個list內的成績轉成等級,再回傳該list的參照。
第14行,回傳2個值。
呼叫函式:
第1行,用2個變數分別接收2個回傳值。
執行結果:
bmi值:19.03, 評語:適中
說明:
(2) 將多個回傳值存在dict中
以下是一個例子:
第14行,將回傳值value及comments包在一個dict中。
呼叫函式:
第1行,用myBMI接收一個回傳的dict值。 第2行,用myBMI["value"]及myBMI["comments"]分別取出bmi值及bmi評語。
執行結果:
bmi值:19.03, 評語:適中
說明:
問題1:
寫一個函式score(chi, eng, mat, wchi=1.0, weng=1.0, wmat=1.0),傳入值分別是國文、英文、數學、國文加權、英文加權、數學加權。請計算傳入值的加權平均分數,另外: 如果加權平均分數>=90,等級分數為A; 否則如果加權平均分數>=80,等級分數為B; 否則如果加權平均分數>=70,等級分數為C; 否則如果加權平均分數>=60,等級分數為D; 否則,等級分數為E。
請回傳「加權平均分數」及「等級分數」。
測試主程式:
測試結果範例:
80, B 77.5, C
問題2:
改寫以上的程式,將回傳值包裝在一個dict再回傳。