可變參數就是傳入的參數個數是可變的,能夠是1個、2個到任意個,還能夠是0個
可變參數容許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝爲一個tuple
定義可變參數函數函數
def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum print(calc(1, 2)) #輸出:5 print(calc()) #輸出:0
函數定義時,既有位置參數又有可變參數,那麼當函數調用時,傳入的位置參數個數小於函數定義的話,則不足的部分會從可變參數中依次補充spa
def calc(a,b,*numbers): print(a) print(b) print(*numbers) nums = [1, 2, 3] calc(*nums) ''' 輸出: 1 2 3 ''' calc('a','b',*nums) ''' 輸出: a b 1 2 3 ''' calc('a',*nums) ''' 輸出: a 1 2 3 '''
將list或者tuple做爲可變參數傳入code
nums = [1, 2, 3] print(calc(nums[0], nums[1], nums[2])) #輸出:14, 這種寫法固然是可行的,問題是太繁瑣 print(calc(*nums)) #輸出:14, Python容許你在list或tuple前面加一個*號,把list或tuple的元素變成可變參數傳進去 # *nums表示把nums這個list的全部元素做爲可變參數傳進去