一、

自訂函數的語法是

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(*變數)這樣的形式呈現

下面的語法就是利用迴圈做相加,當然也可以做其他不同的改變,因為數字也不一定都是要相加的對吧!可以相乘、算出平均等等等都能派上用場

就看你怎麼改囉!讓我們一起變更好吧

查看原文 >>
相关文章