Python 位置參數(shù)基礎(chǔ)教程示例
位置參數(shù)
有時(shí)也稱必備參數(shù),指的是必須按照正確的順序?qū)?shí)際參數(shù)傳到函數(shù)中,換句話說(shuō),調(diào)用函數(shù)時(shí)傳入實(shí)際參數(shù)的數(shù)量和位置都必須和定義函數(shù)時(shí)保持一致。
實(shí)參和形參數(shù)量必須一致
在調(diào)用函數(shù),指定的實(shí)際參數(shù)的數(shù)量,必須和形式參數(shù)的數(shù)量一致(傳多傳少都不行),否則 Python 解釋器會(huì)拋出 TypeError 異常,并提示缺少必要的位置參數(shù)。
例如:
def girth(width , height): return 2 * (width + height) #調(diào)用函數(shù)時(shí),必須傳遞 2 個(gè)參數(shù),否則會(huì)引發(fā)錯(cuò)誤 print(girth(3))
運(yùn)行結(jié)果為:
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() 函數(shù)缺少一個(gè)必要的 height 參數(shù)。
同樣,多傳參數(shù)也會(huì)拋出異常:
def girth(width , height): return 2 * (width + height) #調(diào)用函數(shù)時(shí),必須傳遞 2 個(gè)參數(shù),否則會(huì)引發(fā)錯(cuò)誤 print(girth(3,2,4))
運(yùn)行結(jié)果為:
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
通過(guò) TypeErroe 異常信息可以知道,girth() 函數(shù)本只需要 2 個(gè)參數(shù),但是卻傳入了 3 個(gè)參數(shù)。
實(shí)參和形參位置必須一致
在調(diào)用函數(shù)時(shí),傳入實(shí)際參數(shù)的位置必須和形式參數(shù)位置一一對(duì)應(yīng),否則會(huì)產(chǎn)生以下 2 種結(jié)果:
拋出 TypeError 異常
當(dāng)實(shí)際參數(shù)類型和形式參數(shù)類型不一致,并且在函數(shù)種,這兩種類型之間不能正常轉(zhuǎn)換,此時(shí)就會(huì)拋出 TypeError 異常。
例如:
def area(height,width): return height*width/2 print(area("C語(yǔ)言中文網(wǎng)",3))
輸出結(jié)果為:
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 3, in <module>
print(area("C語(yǔ)言中文網(wǎng)",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'
以上顯示的異常信息,就是因?yàn)樽址愋秃驼螖?shù)值做除法運(yùn)算。
產(chǎn)生的結(jié)果和預(yù)期不符
調(diào)用函數(shù)時(shí),如果指定的實(shí)際參數(shù)和形式參數(shù)的位置不一致,但它們的數(shù)據(jù)類型相同,那么程序?qū)⒉粫?huì)拋出異常,只不過(guò)導(dǎo)致運(yùn)行結(jié)果和預(yù)期不符。
例如,設(shè)計(jì)一個(gè)求梯形面積的函數(shù),并利用此函數(shù)求上底為 4cm,下底為 3cm,高為 5cm 的梯形的面積。但如果交互高和下低參數(shù)的傳入位置,計(jì)算結(jié)果將導(dǎo)致錯(cuò)誤:
def area(upper_base,lower_bottom,height): return (upper_base+lower_bottom)*height/2 print("正確結(jié)果為:",area(4,3,5)) print("錯(cuò)誤結(jié)果為:",area(4,5,3))
運(yùn)行結(jié)果為:
正確結(jié)果為: 17.5
錯(cuò)誤結(jié)果為: 13.5
因此,在調(diào)用函數(shù)時(shí),一定要確定好位置,否則很有可能產(chǎn)生類似示例中的這類錯(cuò)誤,還不容易發(fā)現(xiàn)。
以上就是Python 位置參數(shù)基礎(chǔ)教程示例的詳細(xì)內(nèi)容,更多關(guān)于Python位置參數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
已解決不小心卸載pip后怎么處理(重新安裝pip的兩種方式)
這篇文章主要介紹了已解決不小心卸載pip后怎么處理(重新安裝pip的兩種方式),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04python中使用asyncio實(shí)現(xiàn)異步IO實(shí)例分析
在本篇文章里小編給大家整理的是一篇關(guān)于python中使用asyncio實(shí)現(xiàn)異步IO實(shí)例分析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-02-02Python中.join()和os.path.join()兩個(gè)函數(shù)的用法詳解
join()是連接字符串?dāng)?shù)組而os.path.join()是將多個(gè)路徑組合后返回。接下來(lái)通過(guò)本文重點(diǎn)給大家介紹Python中.join()和os.path.join()兩個(gè)函數(shù)的用法,感興趣的朋友一起看看吧2018-06-06python實(shí)現(xiàn)內(nèi)存監(jiān)控系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)內(nèi)存監(jiān)控系統(tǒng),通過(guò)系統(tǒng)命令或操作系統(tǒng)文件獲取到內(nèi)存信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Django 解決阿里云部署同步數(shù)據(jù)庫(kù)報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了Django 解決阿里云部署同步數(shù)據(jù)庫(kù)報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05解決Numpy與Pytorch彼此轉(zhuǎn)換時(shí)的坑
這篇文章主要介紹了解決Numpy與Pytorch彼此轉(zhuǎn)換時(shí)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05numpy.std() 計(jì)算矩陣標(biāo)準(zhǔn)差的方法
今天小編就為大家分享一篇numpy.std() 計(jì)算矩陣標(biāo)準(zhǔn)差的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Pycharm配置Anaconda環(huán)境的詳細(xì)圖文教程
PyCharm是一款很好用很流行的python編輯器,Anaconda通過(guò)管理工具包、開發(fā)環(huán)境、Python版本,大大簡(jiǎn)化了你的工作流程,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下Pycharm配置Anaconda環(huán)境的相關(guān)資料,需要的朋友可以參考下2023-02-02