自訂函式 - HackMD

文章推薦指數: 80 %
投票人數:10人

自訂函式的關鍵字是def,也就是define 的前3 個字母。

函式名稱的部分不能使用系統保留字。

輸入參數則是在呼叫函式時傳給函式的變數,如果不需要 ...       Published LinkedwithGitHub Like Bookmark Subscribe #自訂函式 >作者:王一哲 >日期:2021/10/21 ##基本觀念 我們可以利用自訂函式將某一段程式碼取個名字,並設定好它的回傳值,接下來就可以在後續的程式碼中直接呼叫自訂函式,這樣可以使程式碼較為簡潔。

自訂函式的語法如下 ```python def函式名稱(輸入參數): 函式內要執行的程式碼 ... return回傳值 ``` 自訂函式的關鍵字是**def**,也就是define的前3個字母。

函式名稱的部分不能使用系統保留字。

輸入參數則是在呼叫函式時傳給函式的變數,如果不需要輸入參數時可以什麼都不加。

**return**之後是函式回傳值,可以沒有回傳值,也可以有多個回傳值,當程式執行完return之後就會離開自訂函式。



##沒有輸入參數及回傳值的自訂函式 我們可以用以下的程式碼自訂名為**hello**的函式,這個函式不需要輸入參數,功能就是印出HelloWorld!,也沒有回傳值。

```python defhello(): print("HelloWorld!") ``` 如果要在後續的程式中呼叫hello,寫法為 ```python hello() ``` 請注意,**hello後面的\(\)不能省略**。

執行時會輸出 ```python HelloWorld! ``` 如果用以下方式呼叫 ```python foriinrange(5): hello() ``` 輸出為 ```python HelloWorld! HelloWorld! HelloWorld! HelloWorld! HelloWorld! ```

##有輸入參數及回傳值的自訂函式 我們可以用以下的程式碼自訂名為**sub**的函式,這個函式需要輸入參數a、b,功能是回傳a-b的計算結果。

```python defsub(a,b): returna-b ``` 如果要在後續的程式中呼叫sub,則輸入參數為2、3,寫法為 ```python sub(a=2,b=3) sub(b=3,a=2) sub(2,3) ``` 請注意,**如果輸入參數不加上名稱時會按照輸入的順序分別傳給a、b**。

執行時回傳值皆為 ```python -1 ```
在自訂函式時也可以設定輸入參數的預設值,例如 ```python defsub(a=2,b=3): returna-b ``` 呼叫sub時可以輸入參數,如果沒有輸入參數則會自動採用預設值,例如以下的寫法回傳值為4。

```python sub(a=5,b=1) ``` 若改為這個寫法則回傳值為-1。

```python sub() ```
如果改成以下的寫法 ```python defsub(a,b): returna-b,a,b ``` 則回傳值會有3個。

如果用以下方式呼叫sub ```python c=sub(a=2,b=3) ``` 則c的資料類別為**元組(tuple)**,變數值為 ```python (-1,2,3) ``` 如果想要將回傳值分別指定給變數d、e、f,寫法為 ```python d,e,f=sub(a=2,b=3) ``` d、e、f的變數值分別是-1、2、3。



--- ######tags:`Python` × Signin Email Password Forgotpassword or Byclickingbelow,youagreetoourtermsofservice. SigninviaFacebook SigninviaTwitter SigninviaGitHub SigninviaDropbox NewtoHackMD?Signup



請為這篇文章評分?