算術、關係、邏輯、複合指定運算子

算數運算子

基本的算術運算符號如下所列:

範例程式:

關係運算子

進行關係運算式中,關係子左、右二邊運算式的判斷,然後給予真(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