Python 運算符
什麼是運算子?
本章節主要說明Python的運算子。舉個簡單的例子 4 +5 = 9 。 在範例中,4 和 5 被稱為運算元,"+" 稱為運算子。
Python語言支援以下類型的運算子:
算術運算子
比較(關係)運算子
賦值運算子
邏輯運算子
位元運算子
- ##成員運算子
- 身份運算子
- #運算子優先權
Python算術運算子以下假設變數a為10,變數b為20:運算子描述實例+#加上- 兩個物件相加a + b 輸出結果30 -減- 得到負數或是一個數減去另一個數a - b 輸出結果-10*乘- 兩個數字相乘或是傳回一個重複若干次的字串a * b 輸出結果200/除- x除以yb / a 輸出結果2##%#**//
以下實例示範了Python所有算術運算子的運算:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c a - b
print "2 - c 的值為:", c
c = a * b
print "3 - c 的值為:" a / b
print "4 - c 的值為:", c
c = a % b
print "5 - c 的值為:", c
##print "5 - c 的值為:", c
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c a - b
print "2 - c 的值為:", c
c = a * b
print "3 - c 的值為:" a / b
print "4 - c 的值為:", c
c = a % b
print "5 - c 的值為:", c
##print "5 - c 的值為:", c
#取模- 傳回除法的餘數 | b % a 輸出結果0 | |
冪- 傳回x的y次方 | a**b 為10的20次方, 輸出結果100000000000000000000 | |
取整除- 返回商的整數部分 | # #9//2 輸出結果4 , 9.0//2.0 輸出結果4.0 |
b = 3 | print "6 - c 的值為:", c | a =#10##10 |
---|---|---|
#試試看» | #以上實例輸出結果:", c | |
1 - c 的值為: 31 | ||
5 - c 的值為: 1 | 7 - c 的值為: 2 | |
以下假設變數a為10,變數b為20: | ||
以下實例示範了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:
運算子
運算子
描述
實例
##and ornot以上實例輸出結果:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#a = 10
b = 20
if ( a and b ):
print "1 - 變數 a 與 b 都為 true"##else:
一個不為 true"
if ( a or b ):
print "2 - 變數 a 與 b 都為 true,或其中一個變數為 true"
else:print1 2 - 變數 a 與 b 都不為 true"
# 修改變數 a 的數值
a = 0
if ( a and b ): 皆為 true"
else:
print "3 - 變數 a 與 b 與使用 true"
if ( a or b 皆為 true,或其中一個變數為 true"
else:
print "4 - 變數 a 與 b 都不為 true"
if not( a and b ): true"
if not( a and b ): "5 - 變數 a 與 b 皆為 false,或其中一個變數為 false"
else:
print "5 - 變數 a 且為上述實例輸出實例輸出實例為「以下」結果:
1 - 變數 a 與 b 都為 true
2 - 變數 a 與 b 皆為 true,或其中一個變數為 true##3 不為 true# -*- coding: UTF-8 -*-
#a = 10
b = 20
if ( a and b ):
print "1 - 變數 a 與 b 都為 true"##else:
一個不為 true"
if ( a or b ):
print "2 - 變數 a 與 b 都為 true,或其中一個變數為 true"
else:print1 2 - 變數 a 與 b 都不為 true"
# 修改變數 a 的數值
a = 0
if ( a and b ): 皆為 true"
else:
print "3 - 變數 a 與 b 與使用 true"
if ( a or b 皆為 true,或其中一個變數為 true"
else:
print "4 - 變數 a 與 b 都不為 true"
if not( a and b ): true"
if not( a and b ): "5 - 變數 a 與 b 皆為 false,或其中一個變數為 false"
else:
print "5 - 變數 a 且為上述實例輸出實例輸出實例為「以下」結果:
1 - 變數 a 與 b 都為 true
5 - 變量 a 和 b 都為 false,或其中一個變量為 false
Python成員運算符
除了以上的一些運算子之外,Python還支援成員運算符,測試實例中包含了一系列的成員,包括字串,列表或元組。
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 |
運算子 | 描述 | #實例 |
---|---|---|
#!/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身分運算子
身份運算子用於比較兩個物件的儲存單元#運算子描述#實例isis是判斷兩個識別碼是否引用自一個物件x is y, 如果id(x) 等於id(y ) , 傳回結果1is notis not是判斷兩個識別符是不是引用自不同物件x is not y, 如果id(x) 不等於id(y). 傳回結果1
以下實例示範了Python所有身分運算子的運算:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#a = 20
b = 20
if ( a is b ):
print "1 - a 與 b 1 - a 與 b 沒有相同的標誌"
if ( id(a) == id(b) ):
print "2 - a 與 b 相同的識別識別"
## print "2 - a 和 b 沒有相同的識別"
# 修改變數 b 的數值
b = 30
if ( a is bo): a 與 b 有相同的標誌"
else:
print "3 - a 與 b 沒有相同的識別"
if ( a is not ):
#if ( a is not ):
#if 且 b 沒有相同的識別"
else:
print "4 - a 和 b 有相同的識別"
# -*- coding: UTF-8 -*-
#a = 20
b = 20
if ( a is b ):
print "1 - a 與 b 1 - a 與 b 沒有相同的標誌"
if ( id(a) == id(b) ):
print "2 - a 與 b 相同的識別識別"
## print "2 - a 和 b 沒有相同的識別"
# 修改變數 b 的數值
b = 30
if ( a is bo): a 與 b 有相同的標誌"
else:
print "3 - a 與 b 沒有相同的識別"
if ( a is not ):
#if ( a is not ):
#if 且 b 沒有相同的識別"
else:
print "4 - a 和 b 有相同的識別"
1 - a 和 b 有相同的標誌
2 - a 和 b 有相同的標誌
3 - a 和 b 沒有相同的標誌
4 - a 和#b 沒有相同的標誌
#Python運算子優先權3 - a 和 b 沒有相同的標誌
4 - a 和#b 沒有相同的標誌
以下表格列出了從最高到最低優先權的所有運算子:
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 |