Hi 大家好,
今天要開始介紹基礎語法中的函數進階篇,那我們開始吧!
我們這裡就從日常生活中舉個例子,例如說: 「我喜歡吃日本料理
」。
這句話中的「喜歡
」「吃
」「日本料理
」這幾個單字片語,如果單獨解釋都可以知道它們各自表達的意思,但是不能算是一個完整個句子。
那如果把這些單字片語組合在一起,整個句子從頭到尾的陳述出來,才算是一個完整的句子。
那在程式語言中,要如何區分這些呢? 我們在下面舉例說明。
當我們輸入完後按下Enter
,就可以得到一個計算的結果,那這些輸入的片段都可以稱之為表達式
。執行表達式之後都會回傳一個結果
或一個值
。
>>> 5
5
>>> "hello"
'hello'
>>> 123 > 90
True
>>>
當我們輸入一下的程式碼片段,然後按下Enter
執行,在畫面上並不會馬上顯示一個結果。
在count = 5
中,5
代表是一個表達式
的結果,而count = 5
就是把5
這個結果指定給一個變數count
,這種複值指定的行為就一種陳述句
。
在輸入if count > 5
這程式碼片段中,count > 5
代表是一個表達式
,會得到一個布林值結果True
。而if count > 5
這一個if的判斷句,則是一個陳述句
。
另外while和for的例子中,while count < 5
和 for number in range(0, 6)
都只是一個陳述句。主要是因為if、while和for本身都不會有回傳值,而是通過流程控制來達到某個效果。
>>> count = 5
>>> if count > 5:
... print(count)
...
>>>
>>> count = 0
>>> while count < 5:
... print(count)
... count += 1
...
0
1
2
3
4
>>>
>>> for number in range(0, 6):
... print(number)
...
0
1
2
3
4
5
>>>
在Python中的使用方式如下:
lambda 參數列表: 表達式
Q: 那為什麼會需要Lambda表達式呢?
A: 因為函數在Python中是一個物件,也是一等公民,想要做到把函數指定給某個變數或是常數
,可以使用Lambda表達式來達成。
>>> add = lambda a, b: a + b
>>> add
<function <lambda> at 0x000002BB2D580F40>
>>> add(2, 5)
7
>>>
這段語法會出錯的原因
,是因為lambda a, b:
後面要接的是表達式
,而其中的return
是一個陳述句。所以無法使用陳述句來回傳一個結果,這個用法是錯的。
>>> add = lambda a, b: return a + b
File "<stdin>", line 1
add = lambda a, b: return a + b
^^^^^^
SyntaxError: invalid syntax
>>>
這段語法會出錯的原因
,是因為在lambda表達式中無法使用賦值這個行為
>>> add = lambda number: number += 1
File "<stdin>", line 1
add = lambda number: number += 1
^^
SyntaxError: invalid syntax
>>>
這段語法會出錯的原因
,是因為在lambda表達式中無法使用型別註記方式來宣告變數型別。
>>> add = lambda number: int: number
File "<stdin>", line 1
add = lambda number: int: number
^
SyntaxError: invalid syntax
>>>
那今天就介紹到這裡,我們明天見~