Python 運算符
什麼是運算子?
本章節主要說明Python的運算子。舉個簡單的例子 4 +5 = 9 。 在範例中,4 和 5 被稱為運算元,"+" 稱為運算子。
Python語言支援以下類型的運算子:
算術運算子
比較(關係)運算子
賦值運算子
邏輯運算子
位元運算子
- ##成員運算子
- 身份運算子
- #運算子優先權
Python算術運算子以下假設變數a為10,變數b為20:
描述 | 實例 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#加上- 兩個物件相加 | a + b 輸出結果30 | ||||||||||||||||||||||||||||
減- 得到負數或是一個數減去另一個數 | a - b 輸出結果-10 | ||||||||||||||||||||||||||||
乘- 兩個數字相乘或是傳回一個重複若干次的字串 | a * b 輸出結果200 | ||||||||||||||||||||||||||||
除- x除以y | b / a 輸出結果2 | ||||||||||||||||||||||||||||
#取模- 傳回除法的餘數 | b % a 輸出結果0 | ||||||||||||||||||||||||||||
冪- 傳回x的y次方 | a**b 為10的20次方, 輸出結果100000000000000000000 | ||||||||||||||||||||||||||||
取整除- 返回商的整數部分 | # #9//2 輸出結果4 , 9.0//2.0 輸出結果4.0 |
b = 3 | c = a**bprint "6 - c 的值為:", c | a =#10##10 | b = 5
---|---|---|
#試試看» | #以上實例輸出結果:", c | |
#以上實例輸出結果: | 1 - c 的值為: 31 | 2 - c 的值為: 11|
5 - c 的值為: 1 | 6 - c 的值為: 87 - c 的值為: 2 | |
以下假設變數a為10,變數b為20: | #運算子 | |
實例 | == | |
(a == b) 傳回False。 | != | |
(a != b) 傳回true. | <> |
以下實例示範了Python所有比較運算子的運算:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
if ( a == b ):
print "1 - a 等於# b"
print "1 - a 等於# b"
print "1 - a # print "1 - a 不等於 b"
if ( a != b ):
print "2 - a b"
else print "2 - a b"
if ( a <> b ):
print "3 - a 不等於 b"
else:
##if ( a < b ):
print "4 - a 小於 b"
else:
print "4 ):
print "5 - a 大於 b"
else:
print "5 - a 小於等於 b"
# 修改變數;
b = 20;
if ( a <= b ):
print "6 - a 小於等於 b"
else:##
#if ( b >= a ):
print "7 - b 大於等於 b"
else:
print "7 b#1小於 b"
# 以上實例輸出結果:
1 - a 不等於 b
2 - a 不等於 b
3 - a 不等於 b
4 - a b
6 - a 小於等於 b
7 - b 大於等於 b# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
if ( a == b ):
print "1 - a 等於# b"
print "1 - a 等於# b"
print "1 - a # print "1 - a 不等於 b"
if ( a != b ):
print "2 - a b"
else print "2 - a b"
if ( a <> b ):
print "3 - a 不等於 b"
else:
##if ( a < b ):
print "4 - a 小於 b"
else:
print "4 ):
print "5 - a 大於 b"
else:
print "5 - a 小於等於 b"
# 修改變數;
b = 20;
if ( a <= b ):
print "6 - a 小於等於 b"
else:##
#if ( b >= a ):
print "7 - b 大於等於 b"
else:
print "7 b#1小於 b"
# 以上實例輸出結果:
1 - a 不等於 b
2 - a 不等於 b
3 - a 不等於 b
4 - a b
6 - a 小於等於 b
#
Python賦值運算子
以下假設變數a為10,變數b為20:
#運算子 | ||
---|---|---|
實例 | = | |
c = a + b 將a + b 的運算結果賦值為c | += | |
c += a 等效於c = c + a | #-= | |
c -= a 等效於c = c - a | *= | |
c *= a 等效於c = c * a | /= | |
c /= a 等效於c = c / a | #%= | |
##c % = a 等效於c = c % a | **= |
以下實例示範了Python所有賦值運算子的運算:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c + = a
print "2 - c 的值為:", c
c *= a
print "3 - c 的值為:", c
c /= c 的值為:", c
c /= a
print "4 - c 的值為:", c
#c = 2
c %= a
print "5 - c 的值為:", c
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c + = a
print "2 - c 的值為:", c
c *= a
print "3 - c 的值為:", c
c /= c 的值為:", c
c /= a
print "4 - c 的值為:", c
#c = 2
c %= a
print "5 - c 的值為:", c
Python位元運算子
位元運算子是把數字看成二進位來進行計算的。 Python中的位元運演算法則如下:
下表中變數 a 為 60,b 為 13。
運算子 | 描述 | #實例 |
---|---|---|
& | #位元與運算子:參與運算的兩個值,如果兩個對應位元都為1,則該位元的結果為1,否則為0 | (a & b) 輸出結果12 ,二進位解釋: 0000 1100 |
| | 位元或運算子:只要對應的二個二進位有一個為1時,結果位元就為1。 | (a | b) 輸出結果61 ,二進位解釋: 0011 1101 |
^ | 位元異或運算子:當兩對應的二進位相異時,結果為1 | (a ^ b) 輸出結果49 ,二進位解釋: 0011 0001 |
~ | 位元取反運算子:對資料的每個二進位位元取反,即把1變為0,把0變為1 | (~a ) 輸出結果-61 ,二進位解釋: 1100 0011, 在一個有符號二進制數的補碼形式。 |
<< | 左移動運算子:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 | a << 2 輸出結果240 ,二進位解釋: 1111 0000 |
>> | 右移動運算子:把" >>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數 | a >> 2 輸出結果15 ,二進制解釋: 0000 1111 |
以下實例示範了Python所有位元運算子的運算:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#a = 60 # 60 = 0011 1100
b = 13 0
c = a & b; # 12 = 0000 1100
print " 1 - c 的值為:", c
c = a | b; # 61 = 0011 11 b; # 49 = 0011 0001
print "3 - c 的值為:", c
#print "4 - c 的值為: ", c
c = a << 2; # 240 = 11111. ; # 15 = 0000 1111
print "6 - c 的值為:", c
為上述實例輸出結果:
##11 12
2 - c 的值為: 61
3 - c 的值為: 49
4 - c 的數值為: -61
5 - c 的值為: 240##6 - c 的值為: 15
# -*- coding: UTF-8 -*-
#a = 60 # 60 = 0011 1100
b = 13 0
c = a & b; # 12 = 0000 1100
print " 1 - c 的值為:", c
c = a | b; # 61 = 0011 11 b; # 49 = 0011 0001
print "3 - c 的值為:", c
#print "4 - c 的值為: ", c
c = a << 2; # 240 = 11111. ; # 15 = 0000 1111
print "6 - c 的值為:", c
為上述實例輸出結果:
##11 12
2 - c 的值為: 61
3 - c 的值為: 49
4 - c 的數值為: -61
5 - c 的值為: 240##6 - c 的值為: 15
Python語言支援邏輯運算符,下列假設變數a 為10, b為20:
運算子
運算子
描述
實例
x and y | 布林"與" - 如果x 為False,x and y 傳回False,否則它傳回y 的計算值。 | (a and b) 回傳 20。 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x or y | 布林"或" - 如果x 是非0,它會傳回x 的值,否則它會傳回y 的計算值。 | (a or b) 回傳 10。 | |||||||||||||||||||||||||||
not x | 布林"非" - 如果 x 為 True,則傳回 False 。如果 x 為 False,它會傳回 True。 | not(a and b) 傳回 False |
運算子 | 描述 | #實例 |
---|---|---|
#如果在指定的序列中找到值傳回True,否則傳回False。 | x 在 y 序列中 , 如果 x 在 y 序列中回傳 True。 | |
如果在指定的序列中沒有找到值傳回 True,否則傳回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中傳回 True。 |
#!/usr/bin/python
# -* - coding: UTF-8 -*-
##a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "1 - 變數 a 在給定的清單中 list 中"
else:
print "1 - 變數 a #「已給定的清單中#if ( b not in list ):
print "2 - 變數 b 在已設定的清單中 list 中"
else:
"2 - 中"
else:
# 修改變數 a 的值
a = 2
if ( a in list ):
print "3 - 變數 a :
print "3 - 變數 a 不在給定的清單中 list 中"
以上實例輸出結果:
##a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "1 - 變數 a 在給定的清單中 list 中"
else:
print "1 - 變數 a #「已給定的清單中#if ( b not in list ):
print "2 - 變數 b 在已設定的清單中 list 中"
else:
"2 - 中"
else:
# 修改變數 a 的值
a = 2
if ( a in list ):
print "3 - 變數 a :
print "3 - 變數 a 不在給定的清單中 list 中"
以上實例輸出結果:
1 - 變數 a 不在給定的清單中 list 中
2 - 變數 b 不在給定的清單中 list 中3 - 變數 a 在給定的清單中 list 中
#Python身分運算子
身份運算子用於比較兩個物件的儲存單元
#實例 | is | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x is y, 如果id(x) 等於id(y ) , | is | 傳回結果1is not | |||||||||||||||||||||||||||
x is not y, 如果id(x) 不等於id(y). | is not | 傳回結果1
** | |
---|---|
##~~ + - | |
* / % // | |
+ - | |
>> < ;< | |
& | ##位'AND'|
^ | | 位元運算子 |
<= < > >= | 比較運算子 |
<> == != | 等於運算子 |
#= %= /= //= -= += *= ** = | 賦值運算子 |
is is not | 身分運算子 |
##in not in | 成員運算子 |
not or and | #邏輯運算子 |
以下實例示範了Python所有運算子優先權的運算: #!/usr/bin/python # -*- coding: UTF-8 -*- a = 20 b = 10 c = 15 # = 5 e = 0 #e = (a + 30 * 15 ) / 5 print "(a + b) * c / d 運算結果為:", e . ) / 5 print "((a + b) * c) / d 運算結果為:", e #e = (a + b) * (15/5) print "(a + b) * (c / d) 運算結果為:", e e = a + (b /5) print "a + (b * c) / d 運算結果為:", e 以上實例輸出結果: #(a + b ) * c / d 運算結果為: 90 ((a + b) * c) / d 運算結果為: 90 (a + b) *已計算運算#a + (b * c) / d 運算結果為: 50 |