Python - 運算子



Python 運算子

Python 運算子是用於對一個或多個運算元執行特定操作的特殊符號。 變數、值或表示式可以用作運算元。例如,Python 的加法運算子 (+) 用於對兩個變數、值或表示式執行加法運算。

以下是與 Python 運算子相關的術語:

  • 一元運算子:需要一個運算元來執行特定操作的 Python 運算子稱為一元運算子。
  • 二元運算子:需要兩個運算元來執行特定操作的 Python 運算子稱為二元運算子。
  • 運算元:與運算子一起使用的變數、值或表示式,以執行特定操作。

Python 運算子型別

Python 運算子分為以下幾類:

讓我們逐一瞭解所有運算子。

Python 算術運算子

Python 算術運算子 用於執行基本數學運算,如加法、減法、乘法等。

下表包含所有算術運算子及其符號、名稱和示例(假設 ab 的值分別為 10 和 20):

運算子 名稱 示例
+ 加法 a + b = 30
- 減法 a – b = -10
* 乘法 a * b = 200
/ 除法 b / a = 2
% 取模 b % a = 0
** 指數 a**b =10**20
// 地板除 9//2 = 4

Python 算術運算子示例

a = 21
b = 10
c = 0

c = a + b
print ("a: {} b: {} a+b: {}".format(a,b,c))

c = a - b
print ("a: {} b: {} a-b: {}".format(a,b,c) )

c = a * b
print ("a: {} b: {} a*b: {}".format(a,b,c))

c = a / b
print ("a: {} b: {} a/b: {}".format(a,b,c))

c = a % b
print ("a: {} b: {} a%b: {}".format(a,b,c))

a = 2
b = 3
c = a**b 
print ("a: {} b: {} a**b: {}".format(a,b,c))

a = 10
b = 5
c = a//b 
print ("a: {} b: {} a//b: {}".format(a,b,c))

輸出

a: 21 b: 10 a+b: 31
a: 21 b: 10 a-b: 11
a: 21 b: 10 a*b: 210
a: 21 b: 10 a/b: 2.1
a: 21 b: 10 a%b: 1
a: 2 b: 3 a**b: 8
a: 10 b: 5 a//b: 2

Python 比較運算子

Python 比較運算子 比較其兩側的值並確定它們之間的關係。它們也稱為關係運算符。

下表包含所有比較運算子及其符號、名稱和示例(假設 ab 的值分別為 10 和 20):

運算子 名稱 示例
== 等於 (a == b) 為假。
!= 不等於 (a != b) 為真。
> 大於 (a > b) 為假。
< 小於 (a < b) 為真。
>= 大於或等於 (a >= b) 為假。
<= 小於或等於 (a <= b) 為真。

Python 比較運算子示例

a = 21
b = 10
if ( a == b ):
   print ("Line 1 - a is equal to b")
else:
   print ("Line 1 - a is not equal to b")

if ( a != b ):
   print ("Line 2 - a is not equal to b")
else:
   print ("Line 2 - a is equal to b")

if ( a < b ):
   print ("Line 3 - a is less than b" )
else:
   print ("Line 3 - a is not less than b")

if ( a > b ):
   print ("Line 4 - a is greater than b")
else:
   print ("Line 4 - a is not greater than b")

a,b=b,a #values of a and b swapped. a becomes 10, b becomes 21

if ( a <= b ):
   print ("Line 5 - a is either less than or equal to  b")
else:
   print ("Line 5 - a is neither less than nor equal to  b")

if ( b >= a ):
   print ("Line 6 - b is either greater than  or equal to b")
else:
   print ("Line 6 - b is neither greater than  nor equal to b")

輸出

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not less than b
Line 4 - a is greater than b
Line 5 - a is either less than or equal to  b
Line 6 - b is either greater than  or equal to b

Python 賦值運算子

Python 賦值運算子 用於將值賦給變數。下表顯示了所有 Python 賦值運算子。

下表包含所有賦值運算子及其符號、名稱和示例:

運算子 示例 相同
= a = 10 a = 10
+= a += 30 a = a + 30
-= a -= 15 a = a - 15
*= a *= 10 a = a * 10
/= a /= 5 a = a / 5
%= a %= 5 a = a % 5
**= a **= 4 a = a ** 4
//= a //= 5 a = a // 5
&= a &= 5 a = a & 5
|= a |= 5 a = a | 5
^= a ^= 5 a = a ^ 5
>>= a >>= 5 a = a >> 5
<<= a <<= 5 a = a << 5

Python 賦值運算子示例

a = 21
b = 10
c = 0
print ("a: {} b: {} c : {}".format(a,b,c))
c = a + b
print ("a: {}  c = a + b: {}".format(a,c))

c += a
print ("a: {} c += a: {}".format(a,c))

c *= a
print ("a: {} c *= a: {}".format(a,c))

c /= a 
print ("a: {} c /= a : {}".format(a,c))

c  = 2
print ("a: {} b: {} c : {}".format(a,b,c))
c %= a
print ("a: {} c %= a: {}".format(a,c))

c **= a
print ("a: {} c **= a: {}".format(a,c))

c //= a
print ("a: {} c //= a: {}".format(a,c))

輸出

a: 21 b: 10 c : 0
a: 21  c = a + b: 31
a: 21 c += a: 52
a: 21 c *= a: 1092
a: 21 c /= a : 52.0
a: 21 b: 10 c : 2
a: 21 c %= a: 2
a: 21 c **= a: 2097152
a: 21 c //= a: 99864

Python 位運算子

Python 位運算子 在位上操作並執行逐位運算。這些運算子用於比較二進位制數。

下表包含了所有位運算子及其符號、名稱和示例:

運算子 名稱 示例
& 與(AND) a & b
| 或(OR) a | b
^ 異或(XOR) a ^ b
~ 非(NOT) ~a
<< 左移並用零填充 a << 3
>> 右移並保留符號 a >> 3

Python 位運算子示例

a = 20            
b = 10            

print ('a=',a,':',bin(a),'b=',b,':',bin(b))
c = 0

c = a & b;        
print ("result of AND is ", c,':',bin(c))

c = a | b;     
print ("result of OR is ", c,':',bin(c))

c = a ^ b;        
print ("result of EXOR is ", c,':',bin(c))

c = ~a;           
print ("result of COMPLEMENT is ", c,':',bin(c))

c = a << 2;       
print ("result of LEFT SHIFT is ", c,':',bin(c))

c = a >> 2;       
print ("result of RIGHT SHIFT is ", c,':',bin(c))

輸出

a= 20 : 0b10100 b= 10 : 0b1010
result of AND is  0 : 0b0
result of OR is  30 : 0b11110
result of EXOR is  30 : 0b11110
result of COMPLEMENT is  -21 : -0b10101
result of LEFT SHIFT is  80 : 0b1010000
result of RIGHT SHIFT is  5 : 0b101

Python 邏輯運算子

Python 邏輯運算子 用於組合兩個或多個條件並檢查最終結果。Python 語言支援以下邏輯運算子。假設變數 a 為 10,變數 b 為 20,則:

下表包含了所有邏輯運算子及其符號、名稱和示例:

運算子 名稱 示例
與(and) 與(AND) a and b
或(or) 或(OR) a or b
非(not) 非(NOT) not(a)

Python 邏輯運算子示例

var = 5

print(var > 3 and var < 10)
print(var > 3 or var < 4)
print(not (var > 3 and var < 10))

輸出

True
True
False

Python 成員運算子

Python 的 成員運算子 用於測試一個變數是否屬於某個序列,例如字串、列表或元組。

下面解釋了兩個成員運算子:

運算子 描述 示例
in 如果在指定的序列中找到變數,則返回 True,否則返回 False。 a in b
not in 如果在指定的序列中未找到變數,則返回 True,否則返回 False。 a not in b

Python 成員運算子示例

a = 10
b = 20
list = [1, 2, 3, 4, 5 ]

print ("a:", a, "b:", b, "list:", list)

if ( a in list ):
   print ("a is present in the given list")
else:
   print ("a is not present in the given list")

if ( b not in list ):
   print ("b is not present in the given list")
else:
   print ("b is present in the given list")

c=b/a
print ("c:", c, "list:", list)
if ( c in list ):
   print ("c is available in the given list")
else:
    print ("c is not available in the given list")

輸出

a: 10 b: 20 list: [1, 2, 3, 4, 5]
a is not present in the given list
b is not present in the given list
c: 2.0 list: [1, 2, 3, 4, 5]
c is available in the given list

Python 身份運算子

Python 身份運算子 比較兩個物件的記憶體位置。

下面解釋了兩個身份運算子:

運算子 描述 示例
is 如果兩個變數是同一個物件,則返回 True,否則返回 False。 a is b
is not 如果兩個變數不是同一個物件,則返回 True,否則返回 False。 a is not b

Python 身份運算子示例

a = [1, 2, 3, 4, 5]
b = [1, 2, 3, 4, 5]
c = a

print(a is c)
print(a is b)

print(a is not c)
print(a is not b)

輸出

True
False
False
True

Python 運算子優先順序

運算子優先順序決定了運算子求值的順序。Python 運算子具有不同的優先順序。下表包含了從最高到最低優先順序的運算子列表:

下表列出了所有運算子,從最高 優先順序 到最低優先順序。

序號 運算子和描述
1

**

指數運算(冪運算)

2

~ + -

補碼、一元加號和減號(後兩者的方法名稱為 +@ 和 -@)

3

* / % //

乘法、除法、取模和地板除

4

+ -

加法和減法

5

>> <<

右移和左移位運算

6

&

按位與(AND)

7

^ |

按位異或(XOR)和按位或(OR)

8

<= < > >=

比較運算子

9

<> == !=

相等運算子

10

= %= /= //= -= += *= **=

賦值運算子

11

is 和 is not

身份運算子

12

in 和 not in

成員運算子

13

not、or 和 and

邏輯運算子

在此處瞭解更多關於 Python 運算子優先順序的知識:Python 運算子優先順序

廣告