一、定義函數
在Python中定義一個函數非常簡單,只需使用關鍵字「def」後接函數名,再加上一對圓括弧,最後以冒號結尾即可。如果函數需要參數,則可以定義在括弧內
def func(): print("Hello World!")
上述代碼定義了一個函數名為「func」,該函數不需要傳遞任何參數,直接輸出「Hello World!」
如果需要定義參數,則可以在函數名後的括弧中輸入參數名。例如:
def func(name): print("Hello, " + name)
上面的代碼定義了一個帶「name」參數的函數,函數體會輸出拼接後的字元串「Hello, [name]」
二、調用函數
定義好函數後,我們可以通過函數名來調用它。例如,我們有一個名為「add」函數,它用於將兩個數字相加並返回結果。我們可以這樣調用它:
def add(x, y): return x + y result = add(2, 3) print(result)
上面的代碼定義了一個名為「add」的函數,帶有x和y兩個參數,返回x+y結果。然後我們傳遞參數2和3給函數add,將結果保存在變數「result」中,最後輸出其值5
三、傳遞參數
可以將參數分為兩類——位置參數和關鍵字參數
1、位置參數
位置參數指的是函數的參數按照其在定義中的順序依次進行傳遞。例如:
def func(x, y, z): print(x, y, z) func(1, 2, 3)
上面的代碼定義了一個函數「func」,有三個參數分別為x,y,z,輸入的值分別為1,2,3,結果輸出1,2,3
2、關鍵字參數
關鍵字參數指的是在傳遞參數時,需要指定參數的名稱,這樣可以不必按照定義的順序傳遞參數。
def func(x, y, z): print(x, y, z) func(x=1, z=3, y=2)
上面的代碼定義了一個函數「func」,有三個參數分別為x,y,z,輸入的值順序不對,但是指定了參數,結果輸出1,2,3
四、默認參數
默認參數指的是在函數定義時,定義帶默認值的參數。這些參數並不一定需要在函數調用時傳遞。
def func(x, y=2): print(x, y) func(1) # 輸出1,2 func(1, 3) # 輸出1,3
上面的代碼定義了一個函數「func」,其中y參數設置默認值為2。當我們用一個參數調用該函數時,y將使用默認值,而不是我們傳遞的值。
五、可變參數
可變參數指的是在函數定義時,可以定義不定個數的參數。再Python中,可變參數可以使用星號(*)符號開頭定義
1、參數前使用單個星號(*)定義
def func(*args): print(args) func(1, 2, 3) # 輸出(1, 2, 3) func('a', 'b', 'c') # 輸出('a', 'b', 'c')
上面的代碼中,我們定義了一個名為「func」的函數,它帶有一個名為args的參數,後面使用星號(*)來定義。當我們調用這個函數時,可以傳遞任意個數的參數,它們將被收集為元素放在一個元組中。上面兩行的輸出結果會是不同的元組。
2、參數前使用雙星號(**)定義
def func(**kwargs): print(kwargs) func(name='Tom', age=18, gender='male') # 輸出{'name': 'Tom', 'age': 18, 'gender': 'male'}
上面的代碼中,「func」函數的參數沒有固定數量,只能是關鍵字參數,使用雙星號(**)定義。在函數里,這些參數作為字典傳遞進來。
六、嵌套函數
在Python中,函數可以包含另一個函數,稱之為嵌套函數。下面是一個嵌套函數的例子:
def out_func(x): def inner_func(y): return x + y return inner_func f = out_func(5) f(2) # 輸出7
上面的代碼中,「out_func」函數帶有一個參數x,內部把參數傳遞給了一個嵌套函數「inner_func」。最終「out_func」函數返回「inner_func」函數。我們可以把函數f看成是「inner_func」的一個實例,通過傳遞的參數2來調用它,結果為7。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288912.html