iT邦幫忙

2024 iThome 鐵人賽

DAY 13
1
自我挑戰組

每日挑戰:從零開始的 Python 學習之旅系列 第 13

【Day 13】基礎語法 - 函數進階篇

  • 分享至 

  • xImage
  •  

Hi 大家好,

今天要開始介紹基礎語法中的函數進階篇,那我們開始吧!

表達式(Expression)和陳述句(Statement)

 我們這裡就從日常生活中舉個例子,例如說: 「我喜歡吃日本料理」。
這句話中的「喜歡」「」「日本料理」這幾個單字片語,如果單獨解釋都可以知道它們各自表達的意思,但是不能算是一個完整個句子。
 那如果把這些單字片語組合在一起,整個句子從頭到尾的陳述出來,才算是一個完整的句子。

那在程式語言中,要如何區分這些呢? 我們在下面舉例說明。

  • Expression 表達式

 當我們輸入完後按下Enter,就可以得到一個計算的結果,那這些輸入的片段都可以稱之為表達式。執行表達式之後都會回傳一個結果一個值

>>> 5
5
>>> "hello"
'hello'
>>> 123 > 90
True
>>>
  • Statement 陳述句

 當我們輸入一下的程式碼片段,然後按下Enter執行,在畫面上並不會馬上顯示一個結果。
count = 5中,5代表是一個表達式的結果,而count = 5就是把5這個結果指定給一個變數count,這種複值指定的行為就一種陳述句

 在輸入if count > 5這程式碼片段中,count > 5代表是一個表達式,會得到一個布林值結果True。而if count > 5這一個if的判斷句,則是一個陳述句

 另外while和for的例子中,while count < 5for 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
>>>

Lambda 表達式 (匿名函數)

 在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
>>>

那今天就介紹到這裡,我們明天見~


上一篇
【Day 12】基礎語法 - 函數基礎篇 - 續集
下一篇
【Day 14】基礎語法 - 函數進階篇 - 續集
系列文
每日挑戰:從零開始的 Python 學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言