函式是任何一門程式語言都不可缺少的,而且也是非常重要的一部分。python中函式的引數,可以分為以下幾類:
位置引數,有時也稱必備引數,指的是必須按照正確的順序將實際引數傳到函式中,換句話說,呼叫函式時傳入實際引數的數量和位置都
必須和定義函式時保持一致。
實參和形參數量必須一致
在呼叫函式,指定的實際引數的數量,必須和形式引數的數量一致(傳多傳少都不行),否則 python 直譯器會丟擲 typeerror 異常,並提示缺少必要的位置引數。
例如例如,設計乙個求梯形面積的函式,並利用此函式求上底為 4cm,下底為 3cm,高為 5cm 的梯形的面積。但如果互動高和下低引數的傳入位置,計算結果將導致錯誤:
def
area
(upper_base,lower_bottom,height)
:return
(upper_base+lower_bottom)
*height/
2print
("正確結果為:"
,area(4,
3,5)
)print
("錯誤結果為:"
,area(4,
5,3)
)
執行結果為:
```python
正確結果為: 17.5
錯誤結果為: 13.5
關鍵字引數是指使用形式引數的名字來確定輸入的引數值。通過此方式指定函式實參時,不再需要與形參的位置完全一致,只要將引數名寫正確即可。
# 定義乙個函式
defgirth
(width , height)
:print
("width: "
, width)
print
("height: "
, height)
return2*
(width + height)
# 傳統呼叫函式的方式,根據位置傳入引數
print
(girth(
3.5,
4.8)
)# 根據關鍵字引數來傳入引數
print
(girth(width =
3.5, height =
4.8)
)# 使用關鍵字引數時可交換位置
print
(girth(height =
4.8, width =
3.5)
)# 部分使用關鍵字引數,部分使用位置引數
print
(girth(
3.5, height =
4.8)
)
預設引數 呼叫函式時沒有給擁有預設值的形參傳遞引數,該引數可以直接使用定義函式時設定的預設值。
定義帶有預設值引數的函式,其語法格式如下:
def 函式名(..
.,形參名=預設值):
**塊
python函式引數傳遞
例子1 def f x x 0 10 a 1,2 f a a 0 輸出 記憶體空間 命名空間 pos1 list 1,2 a pos1 x pos1 對列表a應用這個函式,python會先讓x指向a所在的記憶體。由於x和a共享同乙個物件,修改x 0 會讓a的值相應改變。例子2 def mod x x...
陣列作為函式引數傳遞
陣列有兩個特殊的性質。一是不能複製陣列 二是使用陣列名字時,陣列會自動轉化為指向其第乙個元素的指標。由於陣列不能複製,所以無法編寫使用陣列型別形參的函式,因為陣列會被自動轉化為指標。一 一維陣列 1.三種定義形式 void printvalues int void printvalues int v...
陣列作為函式引數傳遞
重點 在c中,陣列是不能作為引數進行傳遞的,但是可以通過傳遞指向陣列初始元素的指標,使得在函式內部運算元組成為可能。在函式這一側,可以通過array i 引用陣列的內容。why?本質上array i 不過是 array i 的語法糖。include void func int array,int s...