1. 邏輯運算符
邏輯運算符總結:
測試代碼
a, b, c = 1, 2, 3
print((a 《 b) and (b 《 c))
print((a 》 b) or (a 《 b))
print(not (a 《 b))
2. 比較運算符
所有比較運算符返回 1 表示真,返回 0 表示假。 這分別與特殊變量True 和 False 等價
測試代碼
a = 5
if a 《= 30:
print(“a《30”)
if 4 《= a 《= 30:
print(“1《=a《=10”)
if 4 《= a & a 《= 30:
print(“4 《= a & a 《= 30”)
3. 位運算符
按位運算符是把數字看作二進制來進行計算的。Python中的按位運算法則如圖所示:
測試代碼
a = 0b11001
b = 0b01000
print(bin(a | b)) # bin()可以將數字轉成二進制表示 ‘0b11001’
print(bin(a & b)) # 與
print(bin(a ^ b)) # 異或
print(3 《《 2) # 左移1位相當于乘以2.左移兩位相當于:3*(2*2)
print(20 》》 1) # 右移移位相當于除以2
4. 加法操作, 乘法操作補充
加法操作補充
數字相加 3+2 結果是 5
字符串拼接 “3”+“2” 結果是 “32”
列表、元組等合并 [10,20,30]+[5,10,100] 結果是 [10,20,30,5,10,100]
乘法操作補充
數字相乘 3*2 結果是 6
字符串復制 “abc”*3 結果是 ”abcabcabc”
列表、元組等復制 [10,20,30]*3 結果是 [10,20,30,10,20,30,10,20,30]
5. 增強賦值運算符補充
復合賦值可以讓程序更加精煉,提高效率
與 C 和 JAVA 不一樣, Python 不支持自增(++)和自減(--)
測試代碼
str_a = “Time”
str_b = “Pause”
str_c = “The”
str_d = “WorldWorld”
str_a += “e”
# str_b -= “e”
str_c *= 3
# str_d /= 2
print(str_a) # 加法支持字符串拼接
print(str_b) # 減法不支持字符串裁剪
print(str_c) # 乘法支持字符串拼接
print(str_d) # 除法也不支持字符串操作
a = 1 《《 2
a 《《= 2
print(“1左移2位”, 1 《《 2, “a左移賦值”, a)
注意:
增強賦值運算符左右需要空格, 但組成增強賦值運算符的運算符之間不需要空格
6. 同一運算符
同一運算符用于比較兩個對象的存儲單元,實際比較的是對象的地址
is 與 == 區別:
is 用于判斷兩個變量引用對象是否為同一個,即比較對象的地址。
== 用于判斷引用變量引用對象的值是否相等,默認調用對象__eq__() 方法。
測試代碼
a = 2
b = 2
c = 3
print(“a和b是同一個對象”, a is b) # 執行結果:True, is比較的是id, 即對象的引用地址/內存地址
print(“a和c是同一個對象”, a is c) # 執行結果False
print(“a和c不是同一個對象”, a is not c) # 執行結果True
總結
is 比較兩個對象的 id 值是否相等,是否指向同一個內存地址
== 比較的是兩個對象的內容是否相等,值是否相等
is 運算符比 == 效率高,在變量和 None 進行比較時,應該使用 is
7.整數緩存問題
命令行模式下,Python僅僅對比較小的整數對象進行緩存(范圍為[-5, 256])
語言底層用數組實現,連續分配空間,便于查找 ,而并非是所有整數對象
文件模式下,所有數字都會被緩存,范圍是:[-無窮大,+無窮大])
緩存實現:[-5,256]仍然底層用數組實現 ;不在[-5,256]出現的數,緩存到鏈表中,不連續分配空間
8. 成員運算符
成員運算符測試實例中包含了一系列的成員,包括字符串,列表或元組
測試代碼
a = “python”
b = “py”
print(b in a) # True
c = [10, 20, 30]
print(10 not in c) # False
9. 運算符優先級問題
運算符優先級如下圖,從高到低依次為:
測試代碼
# 測試運算符優先級
a, b, c, d = 20, 10, 15, 5
e = (a + b) * c / d # 30*15/5
print(‘(a+b)*c/d的執行結果:’, e)
e = (a + b) * (c / d) # 30*(15/5)
print(‘(a+b)*(c/d)的執行結果:’, e)
e = a + (b * c) / d # 20+150/5
print(‘a+(b*c)/d的執行結果:’, e)
注意:
實際使用中,記住如下簡單的規則即可,復雜的表達式一定要使用小括號組織
乘除優先加減
位運算和算術運算》比較運算符》賦值運算符》邏輯運算符
10. 基本運算符總結
基本運算符注意包括以下幾類:
邏輯運算符 (not , or , and)
比較運算符 ( 》 , 《, =, 》= , 《= )
位運算符( &, | , 》》 , 《《 等 )
增強運算符 ( += , -= , *= , /+ 等 )
同一運算符 ( is , is not )
成員運算符 ( in , not in )
-
編程
+關注
關注
88文章
3633瀏覽量
93848 -
python
+關注
關注
56文章
4801瀏覽量
84857 -
運算符
+關注
關注
0文章
172瀏覽量
11094
發布評論請先 登錄
相關推薦
評論