十、python基礎:初步瞭解函數(適合小白同學)

十、python基礎:初步瞭解函數(適合小白同學)

1、爲什麼要用函數?

我們學編程有個很好的用處就是代碼能自動幫我們處理很多重複出現的問題或需求。而代碼在沒有封裝成函數之前,它通常會是一大片的代碼,幾十行幾百行都很常見。試想一下如果我們每次使用別人封裝的模塊時,都要把全部代碼都複製過來,改這裏改那裏,最後改成能實現我們需求的代碼。那用起來就相當不方便了,並且有點重複造輪子的意思了。

當我們知道在實現一個需求時,某些功能或者處理的細節它是會重複多次出現的,只是有些地方需要用戶自己修改。那麼我們可以考慮把它封裝成函數,把那些需要用戶修改的東西,作爲函數的參數,讓用戶在調用函數的時候,自行傳入參數,這樣就能讓這些代碼可以被反覆使用,並且可以適應更多的場景,還能很方便地調用。

2、怎麼自定義一個函數

python中定義函數必須要用def這個保留字,例如:

def my_print():
    print('我的第一個函數')
    print('我的第一個函數')

這就是一個最簡單的函數了,def是向解釋器聲明,你自己定義了一個函數,my_print是函數的名字,後面的小括號用來放一些參數,也可以不放參數,最後跟了一個冒號,接下來在這個函數的第二行開始,只要有4格縮進的,解釋器就認爲這是你的函數體,也就是你這個函數所要執行的代碼,都在這下面開始寫。

3、區分函數名和函數的調用

我們在定義了一個函數之後,需要對它進行調用,它纔會執行,否則就算你運行了整塊代碼,它都沒有反應的。
像下面最後的2行,寫成my_print是 無法調用函數的,必須在它後面加個小括號,纔是調用了這個函數。

def my_print():
    print('我的第一個函數')
    print('我的第一個函數')

my_print       # 錯誤的調用寫法
my_print()     # 正確調用函數的寫法

函數有時候也會被稱爲方法。
我個人是這麼認爲的,在函數式編程中,所有的函數就都是函數,不叫方法。在面向對象編程中,通常會先使用類去創建一個對象,再通過對象去調用它的某個方法,這種情況下,我們在類中定義的函數,通過創建對象後調用,就叫做調用這個對象的某個方法。
(純屬個人理解,新手可以不用理會,反正用起來函數和方法沒啥區別。當我們說調用某個方法時,你理解爲就是調用一個函數好了)

函數並不是每個都像上面那麼簡單的,往下我們慢慢增加複雜性:
從參數的維度來分,可以分爲:無參數函數和有參數函數
像上面最簡單的函數,小括號內沒有任何東西,它就是一個無參數的函數。有參數的函數就是在小括號內,寫一些參數,而參數也有分幾種,後面有文章專門分析一下。

從返回值的角度來分,可以分爲:無返回值函數和有返回值的函數

有沒有返回值,只要看函數體中有沒有return這個保留字。有的就是有返回值函數。後面有文章專門分析一下返回值return。

再複雜一點的是,可以在函數內部調用它本身,實現循環。後面有文章專門分析一下。

最後更復雜的是,在函數內部定義另一個函數,並且調用,實現一個閉包。(這個屬於python進階的內容了,在python進階部分會有專門的文章分析一下閉包)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章