/

Python 運算子

Python 運算子

Python 運算子是我們用來對值和變數執行操作的符號。

我們可以根據它們執行的操作種類將運算子分為以下幾類:

  • 指派運算子
  • 算術運算子
  • 比較運算子
  • 邏輯運算子
  • 位元運算子

還有一些有趣的運算子,比如 isin

指派運算子

指派運算子用於將值賦予一個變數:

1
age = 8

或者將一個變數的值賦予另一個變數:

1
2
age = 8
anotherVariable = age

自 Python 3.8 開始,:= 名為「齊肩大象運算子(walrus operator)」的運算子可以在另一個操作的一部分中將值賦予變數。例如,在 if 語句中或在循環的條件部分中使用。稍後將更詳細地談到。

算術運算子

Python 有許多算術運算子:+-*/(除法)、%(取餘數)、**(幂運算)和 //(整數除法):

1
2
3
4
5
6
7
1 + 1 #2
2 - 1 #1
2 * 2 #4
4 / 2 #2
4 % 3 #1
4 ** 2 #16
4 // 2 #2

注意,操作數之間不需要空格,但為了可讀性,最好空一格。

- 也可以作為一元負號運算子使用:

1
print(-4) #-4

+ 也用於連接字符串值:

1
2
"Roger" + " 是一條好狗"
#Roger 是一條好狗

我們可以結合指派運算子和算術運算子:

  • +=
  • -=
  • *=
  • /=
  • %=
  • 等等

例如:

1
2
3
age = 8
age += 1
# age 現在是 9

比較運算子

Python 定義了一些比較運算子:

  • ==
  • !=
  • >
  • <
  • >=
  • <=

您可以使用這些運算子根據結果獲取布林值(TrueFalse):

1
2
3
4
5
6
7
a = 1
b = 2

a == b #False
a != b #True
a > b #False
a <= b #True

邏輯運算子

Python 提供了以下邏輯運算子:

  • not
  • and
  • or

在處理 TrueFalse 屬性時,它們起到邏輯 AND、OR 和 NOT 的作用,並且經常在 if 條件表達式的求值中使用:

1
2
3
4
5
6
condition1 = True
condition2 = False

not condition1 #False
condition1 and condition2 #False
condition1 or condition2 #True

否則,需要注意可能會引起困惑的地方。

or 在表達式中使用時,返回的是第一個不為假值(False0''[] 等)的操作數的值。否則,它返回最後一個操作數。

1
2
3
4
5
print(0 or 1) ## 1
print(False or 'hey') ## 'hey'
print('hi' or 'hey') ## 'hi'
print([] or False) ## 'False'
print(False or []) ## '[]'

Python 文檔將其描述為 if x is false, then y, else x

and 只有在第一個參數為 True 時才計算第二個參數。因此,如果第一個參數為假值(False0''[] 等),它將返回該參數。否則,它將計算第二個參數:

1
2
3
4
5
6
print(0 and 1) ## 0
print(1 and 0) ## 0
print(False and 'hey') ## False
print('hi' and 'hey') ## 'hey'
print([] and False ) ## []
print(False and [] ) ## False

Python 文檔將其描述為 if x is false, then x, else y

位元運算子

某些運算子用於操作位元和二進制數:

  • & 執行二進制 AND
  • | 執行二進制 OR
  • ^ 執行二進制 XOR 運算
  • ~ 執行二進制 NOT 運算
  • << 左移運算
  • >> 右移運算

位元運算子很少使用,只在非常特殊的情況下使用,但值得一提。

isin

is 被稱為身份運算子。它用於比較兩個對象,如果它們是同一個對象,則返回 True。更多關於對象的內容稍後再談。

in 被稱為成員運算子。它用於判斷一個值是否包含在列表或其他序列中。更多關於列表和其他序列的內容稍後再談。

tags: [“python”, “operators”, “arithmetic operators”, “comparison operators”, “logical operators”, “bitwise operators”, “is”, “in”]