深入理解 Python 中的表達式與敘述句

更新日期: 2024 年 10 月 9 日

在學習 Python 編程時,新手常常會聽到表達式(Expression)敘述句(Statement)這兩個術語。

理解它們的區別對於寫出高效、可讀性高的代碼至關重要。

本文將為你詳細介紹 Python 中表達式和敘述句的概念、區別以及它們在程式中的應用。


什麼是表達式?

表達式是由值、變數、運算符和函數調用組成的代碼片段,經過計算會產生一個值。

換句話說,表達式是一個可以被計算並返回「結果」的語法結構。

示例

# 數值計算
2 + 3 * 5  # 結果為17

# 變數運算
x = 10
y = x + 5  # y的值為15

# 函數調用
result = len("Python")  # result的值為6

在上述例子中,每個=右邊的部分都是一個表達式,經過計算後得到一個值,然後賦值給左邊的變數。


什麼是敘述句?

敘述句是執行某種動作的語句,不能被計算為值。

它們控制程式的流程、定義結構或執行操作,但本身不返回值。

常見的敘述句類型

  • 賦值語句
  x = 10
  • 控制流語句
  if x > 5:
      print("x 大於 5")
  • 迴圈語句
  for i in range(5):
      print(i)
  • 函數定義
  def greet(name):
      return f"Hello, {name}!"
  • 類定義
  class Animal:
      pass

表達式與敘述句的區別

  1. 是否返回值
    • 表達式:經計算後會返回一個值。
    • 敘述句:不返回值,而是執行某種操作。
  2. 在語法中的位置
    • 表達式:通常用於需要值的地方,例如函數參數、條件判斷等。
    • 敘述句:構成程式的基本單位,控制程式的結構和流程。
  3. 嵌套關係
    • 表達式可以嵌套在敘述句中,但敘述句不能嵌套在表達式中。

示例

# 表達式嵌套在敘述句中
if (x + y) > 10:
    print("總和大於 10")

# 敘述句不能嵌套在表達式中(以下代碼是錯誤的)
result = if x > 5: print(x)

實際應用

使用表達式簡化代碼

表達式可以用來簡化代碼,提高可讀性。

# 傳統寫法
if x % 2 == 0:
    is_even = True
else:
    is_even = False

# 使用表達式簡化
is_even = True if x % 2 == 0 else False

理解函數返回值

函數中的 return 關鍵字後面跟著一個表達式,返回計算結果。

def square(n):
    return n * n  # n * n 是一個表達式

控制流中的條件

ifwhile 等控制流語句的條件部分是表達式。

while count < 10:
    print(count)
    count += 1

注意事項

  • 賦值語句不是表達式:在 Python 中,賦值語句如 x = 10 不是表達式,不能用在需要表達式的地方。
  # 以下代碼是錯誤的
  result = (x = 10) * 2
  • Python 3.8 引入了「海象運算符」:使用 := 可以在表達式中進行賦值。
  if (n := len(data)) > 10:
      print(f"數據長度為 {n}")

結論

理解表達式和敘述句的區別有助於更好地編寫 Python 程式。

表達式返回值,可用於計算和條件判斷;敘述句執行操作,控制程式的流程。

掌握這兩者的用法,可以讓你的代碼更清晰、更高效。


進一步學習

  • Python 官方文檔:深入了解 Python 的語法和特性。
  • 進階控制流:學習更多關於 forwhileif 等控制流語句的用法。
  • 函數式編程:探討表達式在函數式編程中的應用。

Similar Posts