Python 程序設計講義(55):Python 的函數——函數的參數
目錄
- Python 程序設計講義(55):Python 的函數——函數的參數
- 一、聲明形參
- 二、傳遞實參(位置參數)
- 1、在調用函數進行傳遞參數時,使用的實參要與形參的數量一致
- 2、在調用函數進行傳遞參數時,實參與形參的順序要對應
- 3、在調用函數進行傳遞參數時,實參與形參的數據類型要一致
- 三、為形參設置默認值
- 四、使用參數名稱傳遞實參(關鍵字參數)
在定義函數時,可以在函數名后面的括號中設置參數。設置參數之后,調用函數時可以對函數的參數賦予不同的數值,函數的每次調用執行結果就可能不同。
一、聲明形參
定義函數時,需要為函數聲明參數,該參數相當于函數語句塊中的變量,在函數內使用。定義函數時的參數常被稱為形式參數,簡稱形參。其所用是在調用函數時專門為函數傳遞對應的值。形參在函數名后面的括號中定義。
聲明形參的語法格式如下:
def 函數名(形參):函數體
當聲明的參數為多個時,就構成了形參列表,每個形參之間用逗號(,
)分割。
語法格式如下:
def 函數名(形參1, 形參2, ...):函數體
例如:定義一個函數area()
,函數的功能是求長方體的面積,長方體的長、寬、高作為函數的形參。
代碼如下:
def area(a,b,c):return a*b*c
二、傳遞實參(位置參數)
為函數聲明形參以后,就可以在調用函數時進行參數傳遞。調用函數時傳遞的參數稱為實際參數,簡稱實參。
傳遞實參相當于為形參賦值,調用函數時,傳遞實參,將實參值應用到函數中進行運算。
傳遞實參的語法格式如下:
函數名(實參)
如果實參有多個,實參之間用逗號隔開。
語法格式如下:
函數名(實參1, 實參2, ...)
1、在調用函數進行傳遞參數時,使用的實參要與形參的數量一致
例如:調用求長方體面積的函數area()
代碼如下:
def area(a,b,c):return a*b*c
s=area(1,2,3)
print(s)程序的運行結果為:
6
如果調用函數時實參與形參的個數不一致,會報如下錯誤:
def area(a,b,c):return a*b*c
s=area(1,2,3,4)
print(s)程序的運行結果為:
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 3, in <module>s=area(1,2,3,4)
TypeError: area() takes 3 positional arguments but 4 were given
2、在調用函數進行傳遞參數時,實參與形參的順序要對應
例如:
def addr(province,city):return province+cityprint(addr("河南省","新鄉市"))
print(addr("新鄉市","河南省"))#實參的順序不對程序的運行結果為:
河南省新鄉市
新鄉市河南省
3、在調用函數進行傳遞參數時,實參與形參的數據類型要一致
調用函數時,如果實參與形參的數據類型不一致,可能會出現異常。
例如:
def area(a,b):return a*bx=input('請輸入長方形的長度:')
y=input('請輸入長方形的長度:')
print(area(x,y))程序的運行結果為:
請輸入長方形的長度:20
請輸入長方形的長度:15
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 6, in <module>print(area(x,y))~~~~^^^^^File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 2, in areareturn a*b~^~
TypeError: can't multiply sequence by non-int of type 'str'
三、為形參設置默認值
在調用函數時,實參的數量必須和形參的數量一致,否則將拋出異常。為了避免因為實參和形參數量不一致而出現錯誤,可以在定義函數時,為形參指定默認值。
這樣,在調用函數時,如果沒有為指定默認值的形參傳遞實參,則函數會使用形參的默認值,從而避免出錯。
為形參設置默認值的語法格式如下:
def 函數名(形參1, 形參2, ... , 形參n=value)說明:
(1)形參n=value:表示為形參n指定默認值為value。
(2)在調用函數時,如果為形參n指定了實參,則把實參的值傳遞給形參n,如果沒有為形參n指定實參,則使用默認值value作為形參n的值。
(3)指定默認值的形參必須放在所有形參的最后。
例如:
def area(a=1, b=1):#為形參a,b指定默認值1return a*bprint(area()) #調用時沒有指定實參,在形參a和b的值都為1程序的運行結果為:
1
四、使用參數名稱傳遞實參(關鍵字參數)
在調用函數時,實參與形參的順序必須保持一致,否則得到的結果可能和預期的結果不相符。
為了避免因為實參和形參順序不一致導致的問題,用戶可以在調用函數時,使用形參名稱傳遞實參。
語法格式如下:
函數名(形參1=value, 形參2=value, ... , 形參n=value)
例如:
def addr(province,city):return province+cityprint(addr("河南省","新鄉市"))
print(addr(city="新鄉市",province="河南省"))程序的運行結果為:
河南省新鄉市
河南省新鄉市