運算子代表特定運算功能的符號,例如 3+4 裡的 3 和 4 是運算元,+ 號則是運算子,整串算式就是運算式
在pyhton裡,運算子可以分為 賦值運算子
、算術運算子
、比較運算子
、邏輯運算子
、位元運算子
、in 與 is 運算子
、跨列運算子
「賦值運算子」就是 =
,會將等號右邊的結果值(123),指定給等號左邊的變數(a)
a = 123
print(a)
# output
123
「算術運算子」就是常見的「加減乘除」符號,針對數字進行數學式的運算
運算子 | 說明 |
---|---|
+ | 加法 |
- | 減法 |
* | 乘法 |
** | 次方 |
/ | 除法 |
// | 除法取整數(無條件捨去) |
% | 除法取餘數 |
# 加法
a = 1 + 2
print(a)
# 減法
a = 3 - 2
print(a)
# 乘法
a = 4 * 2
print(a)
# 次方
a = 3 ** 3
print(a)
# 除法
a = 10 / 2
print(a)
# 除法取整數
a = 10 // 3
print(a)
# 除法取餘數
a = 10 % 3
print(a)
# output
3
1
8
27
5
3
1
使用算術運算子進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。
a = (5 - 3)* 6
print(a)
12
「比較運算子」是用來比較「兩個值大小」的運算子,運算的結果只有 True 或是 False 兩種
運算子 | 說明 |
---|---|
> | 大於 |
< | 小於 |
== | 等於 |
>= | 大於等於 |
<= | 小於等於 |
!= | 不等於 |
a = 3
b = 5
print(a > b)
print(a < b)
print(a == b)
print(a != b)
# output
False
True
False
True
「邏輯運算子」可以判斷and
、 or
和 not
三種基本邏輯狀態以及 xor ^
,運算的結果只有 True 或是 False 兩種
邏輯運算子可以使用 &
代替 and
,|
代替 or
。
a \ b | T | F |
---|---|---|
T | T | F |
F | F | F |
a = True
b = False
c = True
print(a and b)
print(a and c)
# output
False
True
a \ b | T | F |
---|---|---|
T | T | T |
F | T | F |
a = True
b = False
c = True
print(a or b)
print(a or c)
# output
True
True
a | not |
---|---|
T | F |
F | T |
a = True
b = False
print(not a)
print(not b)
# output
False
True
a\b | T | F |
---|---|---|
T | F | T |
F | T | F |
a = True
b = False
c = True
print(a ^ b)
print(a ^ c)
# output
True
False
邏輯運算子可以結合比較運算子,做出更複雜的邏輯判斷。
a = 1
b = 2
c = 3
print((a>b)and(c>b))
print((a>b)or(c>b))
print(not ((a>b)and(c>b)))
# output
False
True
True ( 因為 (a>b)and(c>b) 為 True )
在程式語言的底層,所有數值都是以二進位表現 ( 0 和 1 ),「位元運算子」會針對每個數值的「二進位」字元進行位元運算。
運算子 | 說明 |
---|---|
& | 對數值進行and計算 |
| | 對數值進行or計算 |
~ | 對數值進行not計算 |
^ | 對數值進行xor計算 |
>> | 將數值往右移動指定位數,左側補 0 |
<< | 將數值往左移動指定位數,右側補 0 |
print(3 & 5)
print(3 | 5)
print(~3)
print(3 ^ 5)
print(5 >> 3)
print(5 << 3)
# output
1
7
-4
6
0
40
如果有 a 和 b 兩個變數
使用「in 運算子」可以判斷 b 是否包含 a,如果判斷包含,回傳 True,否則回傳 False
使用「is 運算子」可以判斷 a 和 b 是否為相同物件,如果判斷相同,回傳 True,否則回傳 False。
a = [1, 2, 3]
b = 5
c = 3
d = [1, 2, 3]
e = a
print(b in a)
print(c in a)
print(d is a)
print(e is a)
# output
False
True
False
True