1. 程式人生 > >Python基礎:九、運算符

Python基礎:九、運算符

加法 str 算術 混合 () true 情況下 nbsp 機制

一、賦值運算

簡單的賦值運算符號:=

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

冪賦值運算符:**=

c **= a    #等效於 c = c ** a

取整除賦值運算符://=

c //= a    #等效於 c = c // a

二、算術運算

加---兩對象相加:+

a + b

減---兩對象相減:-

a - b

乘---兩對象相乘,或是返回一個被重復若幹次的字符串:*

a * b

除---a除以b:/ #計算機表示小數的時候會有誤差

a / b

取模---返回除法的余數:%

a % b

冪---返回a的b次冪:**

a ** b

取整除---返回商的整數部分://

a // b

三、比較運算,返回值為布爾值

等於:=

a == b    #返回值為 True 或 False

不等於:!=或<>

a != b    #返回值為 True 或 False

a <>b    #返回值為 True 或 False ,在python3.6中不支持,用 != 替代

大於:>

a > b    #返回值為 True 或 False

小於:<

a < b    #返回值為 True 或 False

大於等於:>=

a >= b    #返回值為 True 或 False

小於等於:<=

a <= b    #返回值為 True 或 False

四、邏輯運算

1. and:布爾"與" x and y

如果x為False,x and y 返回 False,否則它返回 y 的計算值

and是並且的意思,左右兩端的值必須都是真,運算結果才是真,出現False即停止運算

print(True and True and False and False and True and False)
#返回值為False,只運算到第一個False就停止運算了 

2. or:布爾"或" x or y

如果 x 為 True,它返回 True ,否則返回y的計算值

or是或者的意思,左右兩端有一個是真的,結果就是真,只有全部都是假,結果才能是假

a or b    #返回值為 True(a或b有一個為True) 或 False(a或b都為False)

print( True or False)  #返回值為True 

3. not:布爾"非" not x

如果x為True,返回False;如果x為False,則返回True

not是非的意思,原來是假,現在是真;非真即假,非假即真

not(Ture and True)    #返回值為False

print(not True)    #返回值為False

print(not not not not not not False)    #返回值為False,因為每兩個not相互抵消了 

"""

針對邏輯運算有進一步的研究:

1. 在沒有 () 的情況下,not 優先級高於 and ,and 優先級高於 or ,同一優先級,從左往右計算

即優先級關系為 () > not > and > or

例題:判斷下列邏輯語句的結果是True還是False

3>4 or 4<3 and 1 == 1

1<2 and 3<4 or 4>5 and 2<1

1>2 and 3<4 or 4>5 and 2>1 or 9<8

1>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6

not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6

解法:

第一題:

a.先把每個比較算式運算出來,如第一個將變為:False or False and True

b.再按照 () > not > and > or 的優先級進行運算:此時第一題將先計算 False and True,結果為False

c.繼續按照優先級進行計算:此時需要計算的算式變為了 False or False

故第一題的結果為False

第二題

a.先把每一個比較運算式計算出來:True and True or False and False

b.第一個 and 的算式為 True and True,計算結果為True

c.第一個 and 相連的運算符為 or,而 o r的兩邊只要出現 True,or 算式的結果即為 True

故第二題的答案為True

第三題

a.先把每一個比較運算式計算出來:False and True or False and True or False

b.第一個and的算式為False and True,結果為False:第二個 and 的算式為 False and True,結果為False

c.此時算式變為False or False or False

故第三題的答案為False

第四題

方法同上,註意True的斷電機制

第五題

a.先把每一個計較算式運算出來:not True and True or False and True and True or False

b.存在not,先計算not,not True結果為False:False and True o rFalse and True and True or False

c.依此計算and:False or False or False

d.計算or

故第五題的結果為False

2.x or y,x為真,值就是x;x為假,值就是y

如果 x != 0,那麽就是x;如果 x == 0,那麽就是y;如果第一個數是0,則選擇第二個數,如果第一個數不是0,則選擇第一個數

x and y , x為真,值是y ;x為假,值是x

如果 x!=0 ,那麽值就是y,如果 x == 0,那麽就是x;即如果第一個數是零,則選擇第一個數(選擇0),如果第一個數不是零,則選擇第二個數

or和and是相反的

例題:求出下列邏輯語句的值

8 or 4

0 and 3

0 or 4 and 3 or 7 or 9 and 6

解法:

第一題

a.第一個數不等於0,所以結果為第一個數,8

第二題

a.第一個數是0,所以結果是第一個數,0

第三題

a.先計算and,4and3 和 9and6:0 or 3 or 7 or 6

b.再計算or

0 or 3--->3

3 or 7--->3

3 or 6--->3

故結果為3

3. 2>5 and 3 #False相當於0

解法:

a.先計算比較算式,2>5--->False

b.False and 3 相當於 0 and 3 #False相當於0

c.故結果為False

2<1amd4>6or3and4>5or6

解法:

a.先計算比較算式:False and False or 3 and False or 6

b.再計算and:False and False ---> False

3 and False ---> 相當於 3 and 0 ---> False

故 False or False or 6

c.再計算or:False or False ---> False

False or 6 ---> 相當於0 or 6 ---> 6

故計算結果為6

註意混合型:

如:2>1 or 1

2<1 or 1

Python基礎:九、運算符