定義函數與調用函數的順序
函數被定義后,本身是不會自動執行的,只有在被調用后,函數才會被執行,得到相應的結果。但是在 Python 中我們要注意一個關鍵點,就是Python不允許前向引用,即在函數定義之前,不允許調用該函數。
例如:
printplus(1,2)defplus(a,b):returna+b
運行結果為:
NameError:name'plus'isnotdefined
從報錯結果可以看出,名字為plus的函數還沒進行定義(雖然我們是在后面進行了定義)。所以當我們在調用函數時,一定要確定在調用之前進行了函數定義。
正確使用參數
我們要在調用函數時,需要正確調用函數的名稱和參數
例如我們定義了一個加法函數:
defplus(a,b):returna+b
我們在調用plus()函數時,如果傳入的參數類型不對,會報TypeError錯誤。而且有時我們傳入的參數類型不是規定類型的話,就算調用函數運行結果沒有報錯,也會產生邏輯錯誤。
例如:
#定義plus函數,作用是求兩個正整數之和defplus(a,b):returna+b#調用plus函數,參數類型為'1','2'print(plus('1','2'))
輸出結果:
12
雖然上述例子的程序運行結果沒有報錯,但是結果卻與我們的預期不符,因為我們的本意是調用plus()加粗樣式函數實現兩個整數的加法。但是如果我們傳入的是字符串類型的數值時,結果就是兩個字符串的拼接。所以這個例子告訴我們一定要注意傳入參數的類型。當我們傳入正常類型的參數時,傳入的參數個數不一致時,也會報TypeError錯誤。
例如:
#定義plus函數,作用是求兩個正整數之和defplus(a,b):returna+b#調用plus函數,參數為1,2,3print(plus(1,2,3))
報錯:
TypeError:plus()takes2positionalargumentsbut3weregiven
報錯原因顯示,因為plus()函數允許有且僅有2個參數,但是卻在調用時傳入了3個參數,所以程序報錯。
-
字符串
+關注
關注
1文章
585瀏覽量
20601 -
函數
+關注
關注
3文章
4346瀏覽量
62968 -
python
+關注
關注
56文章
4807瀏覽量
85037
發布評論請先 登錄
相關推薦
一文詳解python調用函數
如何查看及更改函數/函數塊的調用環境
![如何查看及更改<b class='flag-5'>函數</b>/<b class='flag-5'>函數</b>塊的<b class='flag-5'>調用</b>環境](https://file1.elecfans.com/web2/M00/AE/C0/wKgaomVWvV2ANCozAAAzJenX8j8177.png)
高效的C編程之函數調用
![高效的C編程之<b class='flag-5'>函數</b><b class='flag-5'>調用</b>](https://file.elecfans.com/web2/M00/4A/0E/pYYBAGKhvI-APlF5AAArjReA0o8529.png)
Python3函數知識大全包括定義,調用,參數,變量等詳細舉例說明
![<b class='flag-5'>Python</b>3<b class='flag-5'>函數</b>知識大全包括<b class='flag-5'>定義</b>,<b class='flag-5'>調用</b>,參數,變量等詳細舉例說明](https://file.elecfans.com/web1/M00/52/34/o4YBAFsSAz-ACHIKAAFl0OS5hmo976.png)
評論