(11)運算符(優先級)


(一)算數運算符: + - * / // (取整)%(取餘) **(冪運算)

 加減乘除就不說了,和數學當中的同樣,這裏重點說下//,%和**

 (1)// (取整數) 兩個數在進行地板除的時候,有一個數是小數,就在最後的結果上加.0

var1 = 10
var2 = 5
var3 = 3.5
res1 = var1 // var2
res2 = var1 // var3
print(res1)
print(res2)
執行結果
2
2.0

    (2)% 取餘python

res1 = 10 % 3.5
res2 = 99 % 7
res3 = -99 % 7
res4 = 99 % -7
print(res1)
print(res2)
print(res3)
print(res4)

 執行結果 es6

3.0
1
6
-6

# 再來看下執行結果,是否是一臉懵逼,小學數學是否是感受白學了,想了半天以後.....瞎說,小學老師可不教這個,算了,不賣關子了 第一個和第二個執行結果應該都沒問題 第三個 :先算99%7 = 1,除數是負數,在餘數前加上-號,而後加上被除數,因此結果是 -1+7 = 6 第四個 :先算99%7 = 1,被除數是負數,在被除數前加上-號,而後加上餘數,因此結果是 1-7 = -6 雙擊6666了..............老鐵
(3) ** 冪運算
print(2**3)
print(4**3)

執行結果:
8
64

(二)比較運算符: > < >= <= == !=

# 比較運算符只會產生2個結果 要麼True 要麼False var1 = 15
var2 = 18
res = var1 > var2
print(res) # False
res = var1 < var2
print(res) # True
res = var1 >= 15  # 只要知足一個條件即爲真
print(res) # True
res = var1 <= 15  
print(res) # True
res = var1 == var2  # ==是判斷兩個值是否相等(is是判斷兩個元素id值是否一致,返回True或False)
print(res) # False
res = var1 != var2  # 不等於 
print(res) # True

(三)賦值運算符: = += -= *= /= //= %= **=

var1 = 9
var2 = 5
res = var1
print(res)
var1 += var2  # var1 = var1 + var2
print(var1)
var1 -= var2  # var1 -= var2
print(var1)
var1 *= var2  # var1 *= var2
print(var1)
var1 /= var2  # var1 = var1 / var2
print(var1)
var1 //= var2  # var1 = var1 // var2
print(var1)
var1 %= var2  # var1 %= var2
print(var1)
var1 **= var2  # var1 **= var2
print(var1)

執行結果
9
14
9
45
9.0
1.0
1.0
1.0
 
 

(四)成員運算符: in 和 not in (針對於容器型數據),判斷某個元素在不在某個容器裏面

#(1)str  字符串須要是一個連續的片斷
strvar = "若是遇到你是一種錯,我寧願一錯再錯"
res1 = "你" in strvar
res2 = "遇到" not in strvar
res3 = "我一" in strvar
print(res1)   # True
print(res2)   # False
print(res3)   # False
#(2)list tuple set
listvar = ["周全","陳鵬","陳根基"]
res = "周全" in listvar
print(res) # True
tuplevar = "王新元","葉欣榮","秋波好","劉鵬程"
res = "葉欣榮" not in tuplevar
print(res) # False
setvar = {'周立飛','高輝'}
res =  "高輝" in  setvar
print(res) # True
#(3)dict  注意 : 判斷的是鍵 不是值
dictvar = {"zdx":"無用","gss":"石阡","mlh":"杜十娘"}
res = "杜十娘" in dictvar
res = "mlh" not in dictvar  # True
print(res)
 

(五)身份運算符: is 和 is not (檢測兩個數據在內存當中是不是同一個值,返回True或False)

var1 = 56 var2 = 56 res1 = var1 == var2 # (判斷兩個值是否相等) res2 = var1 is var2 # (判斷兩個值得地址是否相等) res3 = var1 is not var2 print(res1) print(res2) print(res3) 執行結果 True True False        

 (六)邏輯運算符: and or not

# (1)and 邏輯與
# 全真則真,一假則假
res1 = True and True
res2 = False and True
res3 = False and False
res4 = True and False
print(res1) # True
print(res2) # False
print(res3) # False
print(res4) # False
# (2)or 邏輯或 # 全假則假,一真則真 res5 = True or True res6 = True or False res7 = False or True res8 = False or False print(res5) # True print(res6) # True print(res7) # True print(res8) # False
#(3)not 邏輯非 至關於取反 res9 = not True res10 = not False print(res9) # False print(res10) # True # (4)邏輯短路 ''' False and 布爾 在and左邊若是時False 邏輯短路 右側不執行 True or 布爾 在or左邊若是是True 邏輯短路 右側不執行 在開發當中 ,當成"開關"使用 ''' False and print(123) # 邏輯短路 # False True or print(456) # 邏輯短路 # True True and print(789) # 789
# 邏輯運算符的優先級 () > not > and > or 括號的優先級是最高的

(七)位運算符: & | ~ ^ << >> es5

(1)按位與 &,二者都有,返回真 var1 = 19
var2 = 15
res = var1 & var2
print(res) # 3
"""
	000000010011
	000000001111
	000000000011  # 3
"""
(2)按位或 | 只要一個有,返回真 res = var1 | var2
print(res) # 31
'''
	000000010011
	000000001111
	000000011111  # 31
'''
(3)按位異或 ^ "若是二者不相同,返回真,二者相同返回假 res = var1 ^ var2
print(res)  # 28
'''
	000000010011
	000000001111  
    000000011100 # 28
'''
(4)<< 至關於 5 乘以 2的2次冪 res = 5 << 2   #  20
res = 4 << 3  # 4乘以2的3次冪
print(res)  # 32
"""
000000101  #  至關於101向左移動了2個二進制位
000010100  #  20
"""
(5)>> 至關於 5 除以 2的1次冪 res = 5 >> 1
print(res)  # 2
"""
0000101 # 至關於101向右移動了1個二進制位
0000010  # 2
"""
(6)~ 按位非 (針對於補碼來進行操做 ,連符號位都要改變) 公式 -(n+1) res = ~19
print(res)  # -20
"""
000000000010011 (補碼)
111111111101100 (按位非-->取反做爲新的補碼計算)

111111111101100  (給補碼求原碼)
100000000010011  (反碼+1)
100000000010100  (原碼)  => -20
按位非操做的是補碼,若是實在記不住就記住公式: -(n+1)
"""
全部運算符的優先級:
小括號的優先級最高 () 
** 符號優先級最高
=  符號優先級最低
乘,除 > 加減
() > not > and > or 
(<< >> ) > & > ^ > |
除此以外剩下的運算符參考如下:
算術運算符 > 位運算符 > 比較運算符 > 身份運算符 > 成員運算符 > 邏輯運算符
賦值運算符單獨拿出來 , 用來把最後的結果進行賦值的

練習: 計算 4>5 and 5 <9>5<3 or 1>2 and 3<=3的結果 spa

至關於: 4>5 and (5 <9 and 9 >5and 5<3) or 1>2 and 3<=3 orm

    False and False or False and True blog

    False內存

相關文章
相關標籤/搜索