您現在的位置是:首頁 > 垂釣

零基礎學習 Python 之與函式的初次相見

  • 由 Python空間 發表于 垂釣
  • 2022-10-21
簡介return 是函式的關鍵字,意思是要返回一個值,函式中的 return 也不是必須要寫的,如果不寫的話, Python 會預設返回一個值,那就是 None

零基礎怎麼學好函式

零基礎學習 Python 之與函式的初次相見

寫在之前

大家好,這裡是零基礎學習 Python 系列,在這裡我將從最基本的Python 寫起,然後再慢慢涉及到高階以及具體應用方面。我是完全自學的 Python,所以很是明白自學對於一個人的考驗,所以在這裡我會盡我最大的努力,把 Python 儘可能簡單的表述清楚,讓更多想要學習 Python 的朋友能夠入門。同時寫這個教程也算是對自己之前所學知識的一個鞏固和提高,喜歡的朋友們可以點個關注,有問題歡迎隨時和我交流。本文所有的程式碼編寫均是Python3 版本。

今天我們又開始了新的篇章 —— 函式篇,在現代的任何科技門類,乃至於政治學,經濟學等都已經普遍使用函式,可以說函式的出現直接的加快了現代科技和社會的發展,下面就開始我們與 Python 中的函式的初次相見吧。

函式是什麼?

在我們學生時代的數學中,定義函式的方式一般是這樣的:y = ax + b,這是一個一次函式,當然我們也可以寫成 f(x) = ax + b,其中 x 是變數,可以代表任何數,但是這個並不是函式的全部,在函式中,其實變數並沒有規定只能是數,它可以是豬狗牛羊,也可以是花鳥木魚,說到這不知道你有沒有理解我的意思,其實,

函式就是一種對映。

如果你嘗試著將變數 x 理解為小豬佩奇,那麼 ax + b 就是 a 個佩奇再加上 b,這個結果對應著的是另一個東西,比如熊大,即我們可以理解為 a 個佩奇加上 b 就對應的是熊大,這就是我們所說的對映關係。

如果你理解了這些,我們下面用純粹的中學的數學方式,在 Python 中建立函式:

>>> x = 6

>>> y = 2 * x + 1

>>> y

13

在我們的學生時代我們就是這麼用的,那麼在 Python 中這種方式還有用嗎?上面的例子我們建立了一個所謂的函式,那麼我們來嘗試改變一下 x 的值:

>>> x = 7

>>> y

13

結果是 y 的值並沒有改變,所以說用純粹的數學方式定義函式在 Python 中其實並沒有什麼用,所以我們要用一種新的定義函式的方式,請接著向下看。

如何定義函式?

在 Python 中定義了函式的格式,下面我舉一個例子來說一下 Python 中函式的格式和呼叫的方法:

>>> defadd(x,y):

。。。 return x + y

上面的例子雖然短小,但內有乾坤,下面我以此函式為例,詳述函式的組成。

1。 “def” :def 是函式的開始,也就是在宣告要建立一個函式的時候,一定要先使用 def,這就是告訴 Python 解析器,這裡要宣告的是一個函式。

2。 “add”:add 是函式的名稱,在 Python 中起名字的講究就是要起的有意義,能從函式的名字上看出這個函式是幹什麼的。同時函式的命名規範和變數名是一樣的,必須使用字母和下劃線開頭,且僅能含有字母,數字和下劃線。

3。 “( x,y )”:這個是引數列表,要寫在括號裡,其中的引數指向函式的輸入,本例中函式有兩項輸入,但是通常情況下,輸入的個數可以是任意的,也包括 0 個。

4。 “ : ” :冒號非常重要,如果少了,會報錯,所以希望你們不要像我一樣。

5。 “return a + b”:這一行,就是函式體了,函式體是縮進了 4 個空格的程式碼塊,完成你需要完成的工作。 return 是函式的關鍵字,意思是要返回一個值,函式中的 return 也不是必須要寫的,如果不寫的話, Python 會預設返回一個值,那就是 None。

呼叫函式

在這之前,我們想一下我們為什麼要寫函式?理論上來說,不用函式也可以寫程式碼,之所以用函式,大佬們給我們總結了以下幾點,我在這借花獻佛:

1。 寫函式可以降低程式設計的難度。通常將一個複雜的大問題分解成一系列更小的問題,然後小問題再分解成更小的問題,當問題細化到足夠簡單時,就可以分而治之。

2。 程式碼重用。其實我們在程式設計的時候比較忌諱同一段程式碼不斷重複,因此有必要將某個常用的功能抽象為一段公用的程式碼,也就是函式。

從上面來看,使用函式還是很有必要的,下面就來看看函式是怎麼呼叫的:

>>> defadd(x,y):

。。。 print(‘x = {}’。format(x))

。。。 print(‘y = {}’。format(y))

。。。 return x + y

我們把之前的例子稍作改變,然後接下來看:

>>> add(10,3)

x = 10

y = 3

13

>>> add(3,10)

x = 3

y = 10

13

函式呼叫,最關鍵的是要弄懂如何給函式的引數賦值,上面就是按照引數次序賦值,根據引數的位置,值與之相對應。

>>> add(x = 3,y = 10)

x = 3

y = 10

13

>>> add(y = 10,x = 3)

x = 3

y = 10

13

還可以像上面一樣直接把賦值語句寫到裡面,這就明確了引數和物件的關係,這個時候順序就不重要了。

當然還可以在定義函式的時候就賦給一個預設值,如果不給那個有預設值的引數賦值,那麼它就用預設值,如果給它傳一個,則採用新傳給它的值:

>>> defadd(x,y = 1):

。。。 print(‘x = {}’。format(x))

。。。 print(‘y = ’,y)

。。。 return x + y

。。。

>>> add(1)

x = 1

y = 1

2

>>> add(1,1000000)

x = 1

y = 1000000

1000001

在這裡想在強調一次,

引數和物件的關係與變數和物件的關係一樣,即在函式中的引數所傳的都是物件的引用,而不是物件本身。

寫在最後

到此為止,函式的基本知識估計朋友們也瞭解了,這一部分是我們接下來進一步的學習函式的基礎,希望你能掌握,接下來我會和你們一起對函式的其它部分進行進一步的研究。

Top