基礎教程——python函式
定義一個函式:
1.使用def關鍵字, def + 函式名 +(引數列表)
2.函式的內容由‘ :’開始,由縮排結束
注意:由於python的變數沒有型別,則不像c和c++那麼樣有引數型別
雖然,沒有引數型別,但是在變數的運算過程中,如果變數所引用的值錯誤依舊會報錯
一般格式: def 函式名(引數列表): 函式體 return
知識點1. 引數
1.不可變型別:整數,字串,元組。
2.可變型別:列表,字典
不可變型別:
變數沒有型別,它只是引用了一個量,比如a=10, 10其實就開闢了一塊記憶體的物件,那麼a也只是引用了10這個物件,當再次將a=“123”時,a就引用了字串。
def fun(a): a=20 a=10 print(a) <<<10
如以上函式,函式中的引數a變數,是一個區域性變數,也就是說與全域性變數的a引用了同一個10
但是,後面區域性變數的a改變了引用,但是,它並不是全域性變數的a,所以,全域性變數的a一直沒有改變過。由於,python中沒有類似c++的&和指標,所以不可變數無法改變的。
四種引數:
1.位置引數
2.關鍵字引數
3.預設引數
4.可變引數
位置引數:顧名思義,位置不可變,一個引數都不可少
關鍵字引數:通過“ 鍵=值 ”的形式加以指定,可以改變引數的順序
def fun(a, b): return a+b //正確用法: fun(a=1, b=1) fun(b=1, a=1) fun(1, b=1) fun(1, a=1) //錯誤用法 fun(a=1,1) fun(b=1,1)
也就是說,關鍵字引數一定要在位置引數後面。而關鍵引數之間不具有順序關係
預設引數:就是為引數提供一個預設的值,這樣這個引數賦不賦值都可以,用法和c++類似,一定要放在位置引數之後。
def fun(a=1): print(a) return fun() <<1
可變引數:
一個* , 帶有一個*的引數以元組的形式匯入(注意:元組不可變)
兩個* , 帶有兩個*的引數以字典的形式匯入(注意:字典可變)
def funone(*a): print(a) def funtwo(**b) print(b) funone(1,2,3) >>>(1, 2, 3) funtwo(a=1,b=2, c=3) >>{'a':1, 'b':2, 'c':3}
注意:存在一種特殊的引數。當*在引數列表中時,*後面的引數就必須用關鍵字傳入
def add(a, b, *, c): return a+b+c add(1,1,c=1)
作用域
python中只有模組,類,函式才會引入作用域,其他不會產生作用域。