python函式傳遞陣列引數嗎?

2021-10-14 02:12:50 字數 1504 閱讀 9498

函式是任何一門程式語言都不可缺少的,而且也是非常重要的一部分。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...