python學習筆記:函數參數

來源:互聯網
上載者:User

標籤: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學習筆記:函數參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.