標籤:extra The 有用 jackson alc print while 學習筆記 函數參數
1. 位置參數:一般的參數
2. 預設參數:
1 def power(x, n=2):2 s = 13 while n > 0:4 n = n - 15 s = s * x6 return s
參數裡有預設賦值,調用時用power(5)就是平方,如果power(5, 3)就是立方了
如果有多個預設參數,調用時前面用預設參數,後面不是用預設參數,則需要在調用語句中寫出“參數名 = 參數值”,比如下面這個情況
1 def enroll(name, gender, age=6, city=‘Beijing‘):2 print(‘name:‘, name)3 print(‘gender:‘, gender)4 print(‘age:‘, age)5 print(‘city:‘, city)
enroll(‘bob‘,‘M‘,7)這樣沒有參數名是可以的,city就是用預設參數‘beijing‘,age沒有用,enroll(‘sary‘,‘F‘,‘hangzhou‘)這樣是錯誤的,因為‘hangzhou‘不是age,是city,因此需要這樣使用:enroll(‘sary‘,‘F‘,city=‘hangzhou‘),這樣age=6, city=‘hangzhou‘
3. 可變參數
1 def calc(numbers)2 sum = 03 for n in numbers:4 sum = sum + n * n5 return sum
如果使用上面這個代碼,對於一個list或者tuple輸入值,比如[1,2,3],調用的時候需要這麼寫:calc([1,2,3])或者calc((1, 2, 3)),很麻煩
所以可變參數需要在numbers前加*
1 def calc(*numbers)2 sum = 03 for n in numbers:4 sum = sum + n * n5 return sum
這樣就可以這樣調用了:calc(1, 2, 3)。
對於nums = [1, 2, 3]這個list時,如果用上面這個可變參數,則不能寫成calc(nums),需要寫成calc(nums[0], nums[1], nums[2])或者calc(*nums)
4. 關鍵字參數
1 def person(name, age, **kw)2 print(‘name: ’, name, ‘age: ‘, age, ‘other: ‘, kw)
**kw是一個dict,調用語句為person(‘jackson‘, 30, gender=‘M‘, city=‘beijing‘)後,結果為name: jackson age:30 other:{‘gender‘ : ‘M‘, ‘city‘ : ‘beijing‘}
對於extra = {‘gender‘ : ‘M‘, ‘city‘ : ‘beijing‘}這種已經定義好的dict,可以這麼調用:person(‘jackson‘, 30, **extra)
5. 命名關鍵字參數
這個感覺用處不大
python學習筆記:函數參數