算術運算符
算數運算符包含有+(加)、-(減)、*(乘)、/(除)、//(地板除)、**(冪運算)、%(取余)
/ (結果為小數)
var1 = 2
var2 = 2
res = var1 / var2
print(res)
//
- 被除數 ➗ 除數 = 商
- 注意點:如果被除數或者除數是小數,那么在正常結果后加上.0變成小數
var1 = 2
var2 = 2.0
res = var1 // var2
print(res)
%
var1 = 7
var2 = 4
res = var1 % var2
print(res) # 3
var1 = -7
var2 = 4
res = var1 % var2
print(res) # -3 + 4 = 1
var1 = 7
var2 = -4
res = var1 % var2
print(res) # 3 + (-4) = -1
var1 = -7
var2 = -4
res = var1 % var2
print(res) # -3
**
res = 3 ** 2
print(res)
比較運算符
- 比較運算符包含有>(大於)、<(小於)、>=(大於等於)、<=(小於等於)、==(等於)、!=(不等於)
- 比較運算符的結果要么是True,要么是False,只有兩個值
==
# 這個符號是在做比較,比較==兩邊的數值是否一樣
res = 5 == 9
print(res)
賦值運算符
賦值運算符包含有=、+=、-=、*=、/=、//=、%=、**=
= 將右側的值賦值給左側變量
a = 5 <= 3
print(a)
*=
"""
var1 *= var2 相當於 var1 = var1 * var2
"""
var1 *= var2
print(var1)
成員運算符
- 成員運算符包含有in、not in(針對於容器型數據)
- in或not in是判斷某個值是否包含在(或不在)一個容器類型數據當中
- 字符串判斷時,必須是連續的片段
- 針對於字典,判斷的是字典的鍵,而不是字典的值
strvar = "今天天氣要下雨,趕緊回家收衣服"
res = "今" in strvar
res = "趕回" in strvar
print(res)
身份運算符
身份運算符包含有is和is not(檢測兩個數據id是否相同),可參考python3.6變量緩存機制
邏輯運算符
邏輯運算符包含有and、or、not
and 邏輯與
"""全真則真,一假則假"""
res = True and True # True
res = True and False # False
res = False and True # False
res = False and False # False
print(res)
or 邏輯或
"""一真則真,全假則假"""
res = True or True # True
res = False or True # True
res = True or False # True
res = False or False # False
print(res)
not 邏輯非
res = not True
res = not False
print(res)
邏輯短路的兩種情況
如果短路,無論后面的表達式是True還是False都已經無法改變結果,后面的代碼不執行
- (1) True or 表達式
- (2) False and 表達式
位運算符
位運算符包含有&(按位與)、|(按位或)、^(按位異或)、<<(左移)、>>(右移)、~(按位非)
& 按位與
var1 = 19
var2 = 15
res = var1 & var2
"""
000 ... 10011
000 ... 01111
000 ... 00011 => 3
^ 按位異或
"""
兩個值不相同,返回True
兩個值相同,返回False
"""
var1 = 19
var2 = 15
res = var1 ^ var2
"""
000 ... 10011
000 ... 01111
000 ... 11100
"""
<< 左移與>> 右移
"""
左移:m乘n的n次冪
右移:m地板除n的n次冪
"""
# res = m << n
res = 5 << 3 # 40
res = 5 >> 1 # 2
print(res)
~ 按位非
# 針對於補碼進行操作,按位取反,包含每一位
# 計算公式:-(n+1)
res = ~19
print(res)
"""
原碼:000 ... 10011
反碼:000 ... 10011
補碼:000 ... 10011
補碼: 000 ... 10011
按位非: 111 ... 01100
補碼:111 ... 01100
反碼:100 ... 10011
原碼:100 ... 10100 => -20
"""
總結
個別運算符
- 運算符優先級最高: **
- 運算符優先級最低: =
- () 可以提升優先級
同一種類運算符
- 算術運算符: 乘除 > 加減
- 邏輯運算符: () > not > or
- 位運算符: (<<、>>) > & > ^ > |
整體排序
算數運算符 > 位運算符 > 比較運算符 > 身份運算符 > 成員運算符 > 邏輯運算符 > 賦值運算符