Python 位置參數基礎教程示例
位置參數
有時也稱必備參數,指的是必須按照正確的順序將實際參數傳到函數中,換句話說,調用函數時傳入實際參數的數量和位置都必須和定義函數時保持一致。
實參和形參數量必須一致
在調用函數,指定的實際參數的數量,必須和形式參數的數量一致(傳多傳少都不行),否則 Python 解釋器會拋出 TypeError 異常,并提示缺少必要的位置參數。
例如:
def girth(width , height): return 2 * (width + height) #調用函數時,必須傳遞 2 個參數,否則會引發(fā)錯誤 print(girth(3))
運行結果為:
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
print(girth(3))
TypeError: girth() missing 1 required positional argument: 'height'
可以看到,拋出的異常類型為 TypeError,具體是指 girth() 函數缺少一個必要的 height 參數。
同樣,多傳參數也會拋出異常:
def girth(width , height): return 2 * (width + height) #調用函數時,必須傳遞 2 個參數,否則會引發(fā)錯誤 print(girth(3,2,4))
運行結果為:
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
print(girth(3,2,4))
TypeError: girth() takes 2 positional arguments but 3 were given
通過 TypeErroe 異常信息可以知道,girth() 函數本只需要 2 個參數,但是卻傳入了 3 個參數。
實參和形參位置必須一致
在調用函數時,傳入實際參數的位置必須和形式參數位置一一對應,否則會產生以下 2 種結果:
拋出 TypeError 異常
當實際參數類型和形式參數類型不一致,并且在函數種,這兩種類型之間不能正常轉換,此時就會拋出 TypeError 異常。
例如:
def area(height,width): return height*width/2 print(area("C語言中文網",3))
輸出結果為:
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 3, in <module>
print(area("C語言中文網",3))
File "C:\Users\mengma\Desktop\1.py", line 2, in area
return height*width/2
TypeError: unsupported operand type(s) for /: 'str' and 'int'
以上顯示的異常信息,就是因為字符串類型和整形數值做除法運算。
產生的結果和預期不符
調用函數時,如果指定的實際參數和形式參數的位置不一致,但它們的數據類型相同,那么程序將不會拋出異常,只不過導致運行結果和預期不符。
例如,設計一個求梯形面積的函數,并利用此函數求上底為 4cm,下底為 3cm,高為 5cm 的梯形的面積。但如果交互高和下低參數的傳入位置,計算結果將導致錯誤:
def area(upper_base,lower_bottom,height): return (upper_base+lower_bottom)*height/2 print("正確結果為:",area(4,3,5)) print("錯誤結果為:",area(4,5,3))
運行結果為:
正確結果為: 17.5
錯誤結果為: 13.5
因此,在調用函數時,一定要確定好位置,否則很有可能產生類似示例中的這類錯誤,還不容易發(fā)現。
以上就是Python 位置參數基礎教程示例的詳細內容,更多關于Python位置參數的資料請關注腳本之家其它相關文章!
相關文章
已解決不小心卸載pip后怎么處理(重新安裝pip的兩種方式)
這篇文章主要介紹了已解決不小心卸載pip后怎么處理(重新安裝pip的兩種方式),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04Python中.join()和os.path.join()兩個函數的用法詳解
join()是連接字符串數組而os.path.join()是將多個路徑組合后返回。接下來通過本文重點給大家介紹Python中.join()和os.path.join()兩個函數的用法,感興趣的朋友一起看看吧2018-06-06Pycharm配置Anaconda環(huán)境的詳細圖文教程
PyCharm是一款很好用很流行的python編輯器,Anaconda通過管理工具包、開發(fā)環(huán)境、Python版本,大大簡化了你的工作流程,下面這篇文章主要給大家介紹了關于Windows系統(tǒng)下Pycharm配置Anaconda環(huán)境的相關資料,需要的朋友可以參考下2023-02-02