一、
自訂函數的語法是
def 函數名稱(變數名稱):
自訂函數的內容
return 函數
(不是每一個自訂的函數都要用到return,return是return回傳值,這邊只是看你有沒有回傳值)
這個東東會存在完全就是方便我們做計算啊!我們可以自己定義一個我們想要print出的結果
又或是溫度的轉換、BMI換算等等,都可以用這個方式寫出來
範例如下
我想要建立一個長加寬的式子,我的名稱叫他sum,我裡面有兩個變數,一個是width,另外一個是height
裡面我讓area他是兩個變數的相加,因為最後我要print出的是area,也就是兩個相加的結果,所以要return area (area就是我的回傳值)
要print出結果就是運用你原本自訂的函式名稱來叫出,也就是sum()
下面有三個不同的寫法,如果變數太多當然可以每一個變數都寫,例如第一種的 width=,height=
如果你想到什麼就寫什麼,就算最一剛開始的sum()是先width再height,只要你是"變數=__",他不會計較的
最後就是如果是直接打出值,好比第三種的29跟5,因為沒有講說哪個變數是29哪個變數是5,所以就是原本最一開始的預設值囉,而預設值設定是sum(width, height)
三種的結果都會是一致的(如果你的數字一樣,就會print出相同的結果),一切就是看你習慣哪一種方式,我自己比較習慣是打出第一、二種的方式,因為變數一多不會記得原本的函式怎麼定義變數先後順序,但是這樣子會降低建立程式效率哈哈,可是變數一多,就會搞錯參數順序而導致錯誤結果,反而得不償失唷
二、
其實之前自訂函數已經講過了對吧!但是上次好像沒有提到一個重點,像上述的例子只允許有兩個變數width、height的存在,如果我今天有好多個變數都要相加的話呢?
這時候 '*' 就派上用場,目的是你今天不知道會打出幾個變數來,但是你打了幾個就想相加幾個,不確定變數數目情況下,可以用到這個符號
下面有三種不同的結果,我可以輸入不同的數字,如果是第一種我輸入三個數字,他就會幫我三個數字相加,如果是最後一種的四個數字,也會幫我四個數字相加
因為我不知道我到底會輸入幾個數字,所以就用 '*' 幫我搞定一切,他寫在你del的後面,因為最後也是從那邊輸入數字的,所以當然是sum(*變數)這樣的形式呈現
下面的語法就是利用迴圈做相加,當然也可以做其他不同的改變,因為數字也不一定都是要相加的對吧!可以相乘、算出平均等等等都能派上用場
就看你怎麼改囉!讓我們一起變更好吧
留言列表