Python 運算子是我們用來對值和變數執行操作的符號。
我們可以根據它們執行的操作種類將運算子分為以下幾類:
- 指派運算子
- 算術運算子
- 比較運算子
- 邏輯運算子
- 位元運算子
還有一些有趣的運算子,比如 is
和 in
。
指派運算子
指派運算子用於將值賦予一個變數:
age = 8
或者將一個變數的值賦予另一個變數:
age = 8
anotherVariable = age
自 Python 3.8 開始,:=
名為「齊肩大象運算子(walrus operator)」的運算子可以在另一個操作的一部分中將值賦予變數。例如,在 if
語句中或在循環的條件部分中使用。稍後將更詳細地談到。
算術運算子
Python 有許多算術運算子:+
、-
、*
、/
(除法)、%
(取餘數)、**
(幂運算)和 //
(整數除法):
1 + 1 #2
2 - 1 #1
2 * 2 #4
4 / 2 #2
4 % 3 #1
4 ** 2 #16
4 // 2 #2
注意,操作數之間不需要空格,但為了可讀性,最好空一格。
-
也可以作為一元負號運算子使用:
print(-4) #-4
+
也用於連接字符串值:
"Roger" + " 是一條好狗"
#Roger 是一條好狗
我們可以結合指派運算子和算術運算子:
+=
-=
*=
/=
%=
- 等等
例如:
age = 8
age += 1
比較運算子
Python 定義了一些比較運算子:
==
!=
>
<
>=
<=
您可以使用這些運算子根據結果獲取布林值(True
或 False
):
a = 1
b = 2
a == b #False
a != b #True
a > b #False
a <= b #True
邏輯運算子
Python 提供了以下邏輯運算子:
not
and
or
在處理 True
或 False
屬性時,它們起到邏輯 AND、OR 和 NOT 的作用,並且經常在 if
條件表達式的求值中使用:
condition1 = True
condition2 = False
not condition1 #False
condition1 and condition2 #False
condition1 or condition2 #True
否則,需要注意可能會引起困惑的地方。
or
在表達式中使用時,返回的是第一個不為假值(False
、0
、''
、[]
等)的操作數的值。否則,它返回最後一個操作數。
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
時才計算第二個參數。因此,如果第一個參數為假值(False
、0
、''
、[]
等),它將返回該參數。否則,它將計算第二個參數:
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 運算<<
左移運算>>
右移運算
位元運算子很少使用,只在非常特殊的情況下使用,但值得一提。
is
和 in
is
被稱為身份運算子。它用於比較兩個對象,如果它們是同一個對象,則返回 True
。更多關於對象的內容稍後再談。
in
被稱為成員運算子。它用於判斷一個值是否包含在列表或其他序列中。更多關於列表和其他序列的內容稍後再談。