標籤:... 代碼 利用 中間 實參 文法 參數傳遞 python 設定
1.前言
函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼片段。函數能提高應用的模組性,和代碼的重複利用率。
2.函數的定義
定義函數時需要遵守以下規則:
- 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括弧 ()。
- 任何傳入參數和自變數必須放在圓括弧中間,圓括弧之間可以用於定義參數。
- 函數的第一行語句可以選擇性地使用文檔字串—用於存放函數說明。
- 函數內容以冒號起始,並且縮排。
- return [運算式] 結束函數,選擇性地返回一個值給調用方。不帶運算式的return相當於返回 None。
文法:
def 函數名(參數1,參數2,參數3,...): '''注釋''' 函數體 return 返回的值
3.函數的調用
函數的調用:函數名加括弧
- 先找到名字
- 根據名字調用代碼
4.函數的參數
調用函數時可使用的正式參數類型:
位置參數
位置參數,也叫必需參數,在調用函數時位置參數必須傳值,並且必須以正確的順序和相同的數量傳入傳入。
def func(name,age): print ('我叫%s,我今年%s歲了' %(name,age)) func('張三',18)#輸出'我叫張三,我今年18歲了'
關鍵字參數
以“參數名 = 參數值”的形式作為傳入函數稱為關鍵字參數,使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解譯器能夠用參數名匹配參數值。
def func(name,age): print ('我叫%s,我今年%s歲了' %(name,age)) func(age=18,name='張三')#輸出'我叫張三,我今年18歲了'
預設參數
在定義函數時,如果某些參數的值不會經常變化,可以將其設定為預設參數,調用函數時,如果給預設參數傳遞了實參,則使用傳遞來的實參,如果沒有傳遞實參,則會使用預設參數。
# age為預設參數,預設為18def func(name,age=18): print ('我叫%s,我今年%s歲了' %(name,age))func(age=28,name='張三') #age傳了28,則使用傳來的28func(name='李四') #age沒有傳參,則使用預設的18#輸出'我叫張三,我今年28歲了''我叫李四,我今年18歲了'
不定長參數
如果需要傳給函數的參數很多,並且在函式宣告時不確定在調用時會傳入多少個參數,這種情況下,就要使用到不定長參數了
不定長參數使用*args和**kwargs來接收:
- 加單星號(*)的變數*args用來接收除去索引值對以外的所有參數,以元組形式儲存;
- 加雙星號(**)的變數**kwargs用來接收具名引數,即形如key=value的參數,以字典形式儲存;
def func(a,b,*args,**kwargs): print(a) print(b) print(args) print(kwargs)func(1,2,3,4,5,6,w=7,j=8)#輸出12(3, 4, 5, 6){'w': 7, 'j': 8}
5.案例
編寫一個求和函數,計算使用者傳入的所有參數之和,不能限制使用者傳入參數的個數
def sum(*args): res = 0 for i in args: res += i return resprint(sum(1,2)) print(sum(1,2,3,4,5,6,7,8,9)) #輸出3 45
python學習之【第八篇】:Python中的函數基礎