(1) 可接收多個positional引數
在函式的參數名稱之前加入「*」,該參數就可以接收多個引數值,傳入值將以tuple型態儲存。
def average(*score):
'''回傳平均成績'''
avg = sum(score) / len(score)
return avg
第1行中,*score代表參數score可接收多個值。
print(f'{average(80, 70, 60):.1f}分')
print(f'{average(90, 85, 86, 73):.1f}分')
在第1行中,80、70、60這3個引數將以(80, 70, 60)的tuple型態存在參數score中。
70.0分
83.5分
(2) 不同型態的參數一起使用
如果函式的參數除了有只接收1個值的參數,也有接收不定個數的引數的參數時,請將只接收1個值的參數寫在前面,其後才寫接收不定個數引數的參數。
在第1行,passOral只接收1個引數,請寫在前面;*score可接收多個引數,請寫在後面。
73.0分
83.5分
撰寫一個函式,名稱是teenager,接收不定個數的年齡資料。請計算並回傳傳入資料中有多少人的年齡介於13~19歲之間(包括13及19歲)。
teenager(10, 20, 15, 18, 21) -> 2
teenager(20, 30, 35, 5, 10, 10) -> 0
撰寫一個函式,名稱是ticket,接收1個是否學生團體的參數,及不定個數的參與者年齡資料。假設學生團體的參與者18歲(含)以上每人200元,不足18歲每人120元;非學生團體的參與者18歲(含)以上每人250元,不足18歲每人180元。請計算並回傳票價。
ticket(True, 20, 21, 20, 15) -> 720元
ticket(False, 20, 21, 20, 21, 15, 12) -> 1,360元