Python基礎:九、運算符
一、賦值運算
簡單的賦值運算符號:=
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基礎:九、運算符