Python 簡易手冊

單元 14 - 指派陳述與指派運算式

指派運算子 (assignment operator) 為單一個等號 = ,主要用途是將等號右邊的數值 (value) 指派給等號左邊的變數 (variable) ,等號也可以跟算術運算子 (arithmetic operator) 連在一起用,如下表

種類運算子
指派=
指派同時相加+=
指派同時相減-=
指派同時相乘*=
指派同時相除/=
指派同時相除取整數//=
指派同時取指數**=
指派同時做矩陣乘法@=

@= 是做矩陣乘法並且同時指派的運算子,但是並沒有內建資料型態 (built-in data type) 可以運用 @= 運算子。

算術運算子在單元 12 - 算術運算子介紹。

舉簡單例子如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 進行指派及算術運算
a = 22
a += 3
a -= 4
a *= 5
a /= 6
a **= 7
# 印出變數 a
print(a)

# 檔名: assign_demo.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

此例變數 a 先被指派為整數 22 ,接下來利用指派連同算術運算子一同計算,最後印出變數 a ,執行結果如下

> python assign_demo.py
502650756.8359375
>

指派運算子也可以和位元運算子 (bitwise operator) 一起連用,單元 16 - 位元運算子會詳細介紹位元運算子。

如果要在其他運算式 (expression) 使用指派運算,需要在等號前面加上冒號,構成指派運算式 (assignment expression) ,形式如 := ,例如

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 先指派變數 a 再做比較
print((a := 7) > 6)

# 印出變數 a
print(a)

# 檔名: assign_demo2.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

第 2 行,同一個陳述 (statement) 中先指派整數 7 給變數 a ,然後變數再跟整數 6 進行比較

 1
 2
# 先指派變數 a 再做比較
print((a := 7) > 6)

比較運算子 (comparison operator) 在單元 13 - 比較運算子介紹。

此例執行結果如下

> python python3 assign_demo2.py
True
7
>

注意單一個等號 = 就是一個陳述,必須單獨成行,而 := 所形成的僅是運算式,不能單獨成行,所以是放在其他陳述中使用,例如以下放在 if 之後運算式的一部分

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 先指派變數 a 再做比較
if (a := 7) > 6:
    # 印出變數 a
    print(a)

# 檔名: assign_demo3.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

單元 20 - if 陳述會詳細介紹 if 陳述的用法。

簡單說就是把設定變數 a 放在 if 陳述那一行,此例執行結果如下

> python python3 assign_demo3.py
7
>

基本上指派運算式是一種簡化的語法糖,例如以下變數 iwhile 迴圈 (loop) 的每一次都會重新指派

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 從標準程式庫 random 引入 randint
from random import randint

# 在 i 小於 0 結束迴圈
while (i := randint(-1, 10)) > 0:
    print(i)

# 檔名: assign_demo4.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

這個例子是控制變數 (control variable) i 每一次都取得 -110 之間的隨機整數,當 i 取得 -1 結束迴圈,執行結果如下

> python python3 assign_demo4.py
7
7
6
1
10
>

上例如果不用指派運算式,那進入 while 迴圈前就要先指派變數 i 一次,繼續在 while 結束前需要再重新指派變數 i 一次,就是至少寫兩行相同功能的程式碼,相對指派運算式只需要跟 while 陳述寫在一起。

單元 22 - while 陳述會詳細介紹 while 陳述的用法。

指派的時候也可以多個變數同在同一行一起指派,等號左邊的每個變數都以逗號區隔,等號右邊要有跟左邊相同數量的數值,同樣以逗號區隔,例如

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 平行指派
a, b, c, d, e = 1, 2, 3, 4, 5

# 印出變數 c
print(c)

# 檔名: assign_demo5.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

此例印出變數 c ,執行結果如下

> python python3 assign_demo5.py
3
>

參考資料

上一頁 單元 13 - 比較運算子
回 Python 簡易手冊 首頁
下一頁 單元 15 - 條件運算式
回 Python 教材首頁
回程式語言教材首頁