python函式引數學習 python函式學習1

2021-10-12 12:14:00 字數 2270 閱讀 9874

函式1

(1)定義:

def 函式名(引數列表)

函式體(2)引數傳遞:

在python中,一切都是物件,型別也屬於物件,變數是沒有型別的。

a = [1,2,3]

a = "helloworld"

以上**中,[1,2,3]是list型別,"helloworld"是string型別,而變數a是沒有型別的,它僅僅是乙個物件的引用(乙個指標),可以是指向list型別物件,也可以指向string型別物件。

可更改(mutable)和不可更改(immutable)物件:

在python中,string,tuples,numbers是不可更改物件,而list,dictionary等是可修改物件。

①不可變型別:變數賦值a = 5後再賦值a = 10,這裡實際是新生成乙個int值物件10,再讓a指向它,而5被丟棄,不是改變了a的值,相當於新生成了a.

②可變型別:變數賦值list= [1,2,3,4]後再賦值list[2] = 5,則是將列表list的第三個元素值更改,本身沒有動,只是內部的一部分值被修改了。

python函式的引數傳遞:

①不可變型別:類似於(值傳遞),如 整數(number)、字串(string)、元組(tuple)。如fun(a),傳遞的只是a的值,沒有影響a物件本身。

比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。

1 defchange(a, b):2 """傳遞不可變物件,交換兩個數的值"""

3 c =a4 a =b5 b =c6

7 x = 2

8 y = 3

10 change(x, y)11

12 print(x, y)

輸出結果:

2 3可以發現,將x,y的值傳入change函式,進行交換後,輸出x,y的值還是原來的值,這就是不可變型別傳遞。

②可變型別: 類似於(引用傳遞),如 列表(list),字典(dict)。如 fun(list),則是將 list 真正的傳過去,修改後fun外部的list也會受影響。

1 defalter_list(list):2 """傳遞可變物件,修改列表的值"""

3 list[0] = 3

5 list1 = [1, 2, 3, 4, 5]6 alter_list(list1)7 print(list1)

輸出結果:

[3, 2, 3, 4, 5]

可以發現,list1中的值發生了改變,同樣的寫法,上面的例子中的值沒有改變,而下面的值卻改變,這就是因為不可變型別和可變型別的引數傳遞。

注意:python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。

(3)引數:

必須引數,位置引數,關鍵字引數,預設引數,不定長引數。

①必須引數: 呼叫函式時必須傳入乙個引數。

1 deffunc(a):2 print(a)3

4 func() #沒有引數會報錯

②位置引數:在傳遞引數時必須與形參的順序對應。

1 deffunc(a, b):2 print('a=%s'%a)3 print('b=%s'%b)4

5 func(2, 3)6 func(3, 2)

③關鍵字引數:使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。

1 deffunc(a, b):2   print('a=%s'%a)3   print('b=%s'%b)4

5 func(a=2, b=3)6 func(b=3, a=2)

④預設引數:呼叫函式時,如果沒有傳遞引數,則會使用預設引數。

1 def func(a, b=3):2 print('a=%s'%a)3 print('b=%s'%b)4

5 func(2)

⑤不定長引數: def 函式名(形參1,*形參2)       加了星號*的引數會以元組(tuple)的形式匯入,存放所有未命名的變數引數。

def 函式名(形參1,**形參2) 加了兩個星號**的引數會以字典的形式匯入。

1 def func1(a, *b):2   print(a)3   print(b)4

5 func1(3, 4, 5, 'a', [1, 2, 3])6

7 def func2(a, **b):8print(a)9   print(b)10

11 func2(3, c=4, d=5)  # 因為**要以字典的形式儲存,而字典需要key值和value值,所以傳參的時候要用這種方式

輸出結果:

3(4, 5, 'a', [1, 2, 3])3

Python函式學習 函式 引數

本篇是對 python3函式的學習與小結,用於複習鞏固使用,如有理解偏差的地方,還望各位大佬指正。函式的作用 函式的分類 小結 def 函式名 引數列表 函式體 塊 return 返回值 小結 函式名 str 函式定義,只是宣告了乙個函式,它不會被執行,需要呼叫 呼叫的方式,就是函式名後加上小括號,...

Python函式學習 引數型別

在定義python函式時可定義形參,這些引數在呼叫時候才能確定具體的值,由函式的呼叫者負責為行參傳入引數值 也叫必傳引數,順序引數,是最重要的,也是必須在呼叫函式時明確提供的引數!位置引數必須按先後順序,一一對應,個數不多不少的傳遞!說明 a,b,c是函式add的行參,沒有具體的值,只有在add x...

python函式引數學習筆記

1 引數的傳遞是通過自動將物件賦值給本地變數名來實現的。函式引數 呼叫者傳送的 可能的 共享物件的引用值 所有的引數實際上都是通過指標進行傳遞的。作為引數被傳遞的物件從裡不自動拷貝。2 在函式內部的引數名的賦值不會影響呼叫者。在函式執行時,在函式頭部的引數名是乙個新的 本地變了,這個變數名時再函式的...