關(guān)鍵字參數(shù): 形如 kwarg = value
參數(shù)類型:
- 必備參數(shù)
- 命名參數(shù)
- 缺省參數(shù)
- 不定長(zhǎng)參數(shù)
必備參數(shù)
必須以正確的順序傳入函數(shù)要销,調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣
不然會(huì)出現(xiàn)語法錯(cuò)誤
def printme(str):
# 打印任何傳入的字符串
print str
return
printme() # 語法錯(cuò)誤,必須傳值
廖雪峰大神說:
位置參數(shù) : 調(diào)用函數(shù)時(shí)夏块,傳入的值依順序賦值
默認(rèn)參數(shù): 調(diào)用函數(shù)時(shí)疏咐,默認(rèn)參數(shù)可不賦值,默認(rèn)參數(shù)必須只想不變對(duì)象
可變參數(shù): 定義函數(shù)時(shí)脐供,在參數(shù)前面添加 * 符號(hào)浑塞,在函數(shù)內(nèi)部,參數(shù)接收到的就是一個(gè)tuple
Python 允許在list 或tuple 前面加一個(gè) * 號(hào)政己,把list 或tuple 的元素變成可變參數(shù)傳進(jìn)去關(guān)鍵字參數(shù): 允許傳入0個(gè)或任意個(gè)含參數(shù)名的參數(shù)酌壕,這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict ,在參數(shù)前面添加 ** 符號(hào)
命名關(guān)鍵字參數(shù): 可限制關(guān)鍵字參數(shù)傳入
需要分隔符 * ,* 后面的參數(shù)視為命名關(guān)鍵字參數(shù)
如果函數(shù)定義中已經(jīng)又一個(gè)可變參數(shù),后面就不再需要 特殊分隔符 *
參數(shù)定義的順序必須是:必選參數(shù)仅孩、默認(rèn)參數(shù)托猩、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)辽慕。
遍歷技巧
# 在字典中遍歷時(shí)京腥,關(guān)鍵字和對(duì)應(yīng)的值可以使用 items() 方法同時(shí)解讀出來:
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
... print(k, v)
...
# 在序列中遍歷時(shí),索引位置和對(duì)應(yīng)值可以使用 enumerate() 函數(shù)同時(shí)得到:
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
... print(i, v)
...
#同時(shí)遍歷兩個(gè)或更多的序列溅蛉,可以使用 zip() 組合:
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
... print('What is your {0}? It is {1}.'.format(q, a))
...