算術、關係、邏輯、複合指定運算子
算數運算子
基本的算術運算符號如下所列:
範例程式:
關係運算子
進行關係運算式中,關係子左、右二邊運算式的判斷,然後給予真(True)或假(False)的結果。
程式範例:
邏輯運算子
邏輯運算子二邊,會是二個關係運算式,關係運算式會先被判斷是真或假。再將真或假的值,根據邏輯運算子做左、右二邊的邏輯判斷,也會得到一個真或假的結果。
真值表
程式範例:
運算子優先順序
{**} > {*, /, %, //} > {+, -} > {<, <=, >, >=, !=, ==} > not > and > or
括弧( )優先-順序相同從左到右作運算
1. print("1.", 3*2 > 4 and 8%3 > 3 )
執行順序:
a.3*2=6
b.8%3=2
c.6>4 True
d.2>3 False
e.True and False 得到 False
乘除運算 a.3*2=6 b.8%3=2
關係運算 c.6>4 True d.2>3 False
邏輯運算 e.True and False 得到 False
2. print("2.", 0 < 0 or 3 > 5-2 )
執行順序:
a.5-2=3
b.0<0 False
c.3>3 False #3 > a.所計算的結果
d.False or False 得到 False #b. or c.
加減運算 a. 5-2=3
關係運算 b. 0<0 False c. 3>3 False
邏輯運算 d. False or False 得到 False
3. print ("3.", 5+2 == 3+4 and 2**4 > 10 )
執行順序:
a.2**4=16
b.5+2=7
c.3+4=7
d.7==7 True #b. == c.
e.16 > 10 True #a. > 10
f.True and True 得到 True #d. and e.
乘方運算 a.2**4=16
加減運算 b.5+2=7 c. 3+4=7
關係運算 d. 7==7 True e. 16 > 10 True
邏輯運算 f. True and True 得到 True
4. print( "4.", 6**2 == 4*9 or 0!=0 or 8**2<100)
執行順序:
a. 6**2=36
b. 8**2=64
c. 4*9=36
d. 36==36 True #a. == c.
e. 0!=0 False
f. 64<100 True #b. < 100
g. True or False 得到 True #d. or e.
h. True or True 得到 True #g. or f.
乘方運算 a. 6**2=36 b.8**2=64
乘除運算 c. 4*9=36
關係運算 d. 36==36 True e. 0!=0 False f. 64<100 True
邏輯運算 g. True or False 得到 True h. True or True 得到 True
5. print( "5.", 'abc'>'123' and 123 > 0 )
執行順序:
a. 'abc'> '123' True
b. 123>0 True
c. True and True 得到 True #a. and b.
關係運算 a. 'abc'> '123' True b. 123>0 True
邏輯運算 c. True and True 得到 True
6. print( "6.", not ( 'XYZ' =="XYz" ) )
執行順序:
a. 'XYZ'=='XYz' False
b. not False 得到 True #not a.
關係運算 a. 'XYZ'=='XYz' False
邏輯運算 b. not False 得到 True
7. print( "7.", 2+6*3 < 5+9/3 and 3<2 or 4<6 )
執行順序:
a. 6*3=18
b. 9/3=3
c. 2+18=20 #2+a.
d. 5+3=8 #5+c.
e. 20<8 False #c. < d.
f. 3<2 False
g. 4<6 True
h. False and False 得到 False #e. and f.
i. False or True 得到 True #h. or g.
乘除運算 a. 6*3=18 b. 9/3=3
加減運算 c. 2+18=20 d. 5+3=8
關係運算 e. 20<8 False f. 3<2 False g. 4<6 True
邏輯運算 h. False and False 得到 False i. False or True 得到 True
8. print( "8.", 2+6*3 < 5+9/3 or 3<2 and 4<6 )
執行順序:
a. 6*3=18
b. 9/3=3
c. 2+18=20 #2+a.
d. 5+3=8 #5+b.
e. 20<8 False #c. < d.
f. 3<2 False
g. 4<6 True
h. False and True 得到 False #f. and g.
i. False or False 得到 False #e. or h.
乘除運算 a. 6*3=18 b. 9/3=3
加減運算 c. 2+18=20 d. 5+3=8
關係運算 e. 20<8 False f. 3<2 False g. 4<6 True
邏輯運算 h. False and True 得到 False i. False or False 得到 False
9. print( "9.", (2+6*3 < 5+9/3 or 3<2) and 4<6 ) #8.加括弧,改變了順序
執行順序:
a. 6*3=18
b. 9/3=3
c. 2+18=20 #2+a.
d. 5+3=8 #5+b.
e. 20<8 False #c. < d.
f. 3<2 False
g. False or False 得到 False #e. or f.
h. 4<6 True
i. False and True 得到 False #g. and h.
括號運算
乘除運算 a. 6*3=18 b. 9/3=3
加減運算 c. 2+18=20 d. 5+3=8
關係運算 e. 20<8 False f. 3<2 False
邏輯運算 g. False or False 得到 False
關係運算 h. 4<6 True
邏輯運算 i. False and True 得到 False
10. print( "10.", not 2+6*3 < 5+9/3 or 3<2 and not 4<6 )
執行順序:
a. 6*3=18
b. 9/3=3
c. 2+18=20 #2+a.
d. 5+3=8 #5+b.
e. 20<8 False #c. < d.
f. 3<2 False
g. 4<6 True
h. not False 得到 True #not e.
i. not True 得到 False #not g.
j. False and False 得到 False #f. and g.
k. True or False 得到 True #h. or g.
乘除運算 a. 6*3=18 b. 9/3=3
加減運算 c. 2+18=20 d. 5+3=8
關係運算 e. 20<8 False f. 3<2 False g. 4<6 True
邏輯運算 h. not False 得到 True i. not True 得到 False
j. False and False 得到 False k. True or False 得到 True
複合指定運算子
是指定敘述的省略或快速寫法。
程式範例:
位元運算子 (進階)
用於二進位數的位元邏輯運算。
範例
位移運算子(進階)
二進位數位元向左或向右位移所指定的位元數。
將二進位數向左位移 n 位數
a<<n
將二進位數向右位移 n 位數
a>>n
a=21
二進位值 10101
a<<2 的結果是 84
a>>2 的結果是 5
a<<1 的結果是 42
a>>3 的結果是 2