1. 邏輯運(yùn)算符
邏輯運(yùn)算符總結(jié):
測(cè)試代碼
a, b, c = 1, 2, 3
print((a 《 b) and (b 《 c))
print((a 》 b) or (a 《 b))
print(not (a 《 b))
2. 比較運(yùn)算符
所有比較運(yùn)算符返回 1 表示真,返回 0 表示假。 這分別與特殊變量True 和 False 等價(jià)
測(cè)試代碼
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. 位運(yùn)算符
按位運(yùn)算符是把數(shù)字看作二進(jìn)制來進(jìn)行計(jì)算的。Python中的按位運(yùn)算法則如圖所示:
測(cè)試代碼
a = 0b11001
b = 0b01000
print(bin(a | b)) # bin()可以將數(shù)字轉(zhuǎn)成二進(jìn)制表示 ‘0b11001’
print(bin(a & b)) # 與
print(bin(a ^ b)) # 異或
print(3 《《 2) # 左移1位相當(dāng)于乘以2.左移兩位相當(dāng)于:3*(2*2)
print(20 》》 1) # 右移移位相當(dāng)于除以2
4. 加法操作, 乘法操作補(bǔ)充
加法操作補(bǔ)充
數(shù)字相加 3+2 結(jié)果是 5
字符串拼接 “3”+“2” 結(jié)果是 “32”
列表、元組等合并 [10,20,30]+[5,10,100] 結(jié)果是 [10,20,30,5,10,100]
乘法操作補(bǔ)充
數(shù)字相乘 3*2 結(jié)果是 6
字符串復(fù)制 “abc”*3 結(jié)果是 ”abcabcabc”
列表、元組等復(fù)制 [10,20,30]*3 結(jié)果是 [10,20,30,10,20,30,10,20,30]
5. 增強(qiáng)賦值運(yùn)算符補(bǔ)充
復(fù)合賦值可以讓程序更加精煉,提高效率
與 C 和 JAVA 不一樣, Python 不支持自增(++)和自減(--)
測(cè)試代碼
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)
注意:
增強(qiáng)賦值運(yùn)算符左右需要空格, 但組成增強(qiáng)賦值運(yùn)算符的運(yùn)算符之間不需要空格
6. 同一運(yùn)算符
同一運(yùn)算符用于比較兩個(gè)對(duì)象的存儲(chǔ)單元,實(shí)際比較的是對(duì)象的地址
is 與 == 區(qū)別:
is 用于判斷兩個(gè)變量引用對(duì)象是否為同一個(gè),即比較對(duì)象的地址。
== 用于判斷引用變量引用對(duì)象的值是否相等,默認(rèn)調(diào)用對(duì)象__eq__() 方法。
測(cè)試代碼
a = 2
b = 2
c = 3
print(“a和b是同一個(gè)對(duì)象”, a is b) # 執(zhí)行結(jié)果:True, is比較的是id, 即對(duì)象的引用地址/內(nèi)存地址
print(“a和c是同一個(gè)對(duì)象”, a is c) # 執(zhí)行結(jié)果False
print(“a和c不是同一個(gè)對(duì)象”, a is not c) # 執(zhí)行結(jié)果True
總結(jié)
is 比較兩個(gè)對(duì)象的 id 值是否相等,是否指向同一個(gè)內(nèi)存地址
== 比較的是兩個(gè)對(duì)象的內(nèi)容是否相等,值是否相等
is 運(yùn)算符比 == 效率高,在變量和 None 進(jìn)行比較時(shí),應(yīng)該使用 is
7.整數(shù)緩存問題
命令行模式下,Python僅僅對(duì)比較小的整數(shù)對(duì)象進(jìn)行緩存(范圍為[-5, 256])
語言底層用數(shù)組實(shí)現(xiàn),連續(xù)分配空間,便于查找 ,而并非是所有整數(shù)對(duì)象
文件模式下,所有數(shù)字都會(huì)被緩存,范圍是:[-無窮大,+無窮大])
緩存實(shí)現(xiàn):[-5,256]仍然底層用數(shù)組實(shí)現(xiàn) ;不在[-5,256]出現(xiàn)的數(shù),緩存到鏈表中,不連續(xù)分配空間
8. 成員運(yùn)算符
成員運(yùn)算符測(cè)試實(shí)例中包含了一系列的成員,包括字符串,列表或元組
測(cè)試代碼
a = “python”
b = “py”
print(b in a) # True
c = [10, 20, 30]
print(10 not in c) # False
9. 運(yùn)算符優(yōu)先級(jí)問題
運(yùn)算符優(yōu)先級(jí)如下圖,從高到低依次為:
測(cè)試代碼
# 測(cè)試運(yùn)算符優(yōu)先級(jí)
a, b, c, d = 20, 10, 15, 5
e = (a + b) * c / d # 30*15/5
print(‘(a+b)*c/d的執(zhí)行結(jié)果:’, e)
e = (a + b) * (c / d) # 30*(15/5)
print(‘(a+b)*(c/d)的執(zhí)行結(jié)果:’, e)
e = a + (b * c) / d # 20+150/5
print(‘a(chǎn)+(b*c)/d的執(zhí)行結(jié)果:’, e)
注意:
實(shí)際使用中,記住如下簡單的規(guī)則即可,復(fù)雜的表達(dá)式一定要使用小括號(hào)組織
乘除優(yōu)先加減
位運(yùn)算和算術(shù)運(yùn)算》比較運(yùn)算符》賦值運(yùn)算符》邏輯運(yùn)算符
10. 基本運(yùn)算符總結(jié)
基本運(yùn)算符注意包括以下幾類:
邏輯運(yùn)算符 (not , or , and)
比較運(yùn)算符 ( 》 , 《, =, 》= , 《= )
位運(yùn)算符( &, | , 》》 , 《《 等 )
增強(qiáng)運(yùn)算符 ( += , -= , *= , /+ 等 )
同一運(yùn)算符 ( is , is not )
成員運(yùn)算符 ( in , not in )
-
編程
+關(guān)注
關(guān)注
88文章
3638瀏覽量
94012 -
python
+關(guān)注
關(guān)注
56文章
4809瀏覽量
85053 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
172瀏覽量
11116
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
C語言中位運(yùn)算符的高級(jí)用法(2)
![C語言中位<b class='flag-5'>運(yùn)算符</b>的高級(jí)用法(2)](https://file1.elecfans.com/web2/M00/94/3D/wKgaomTkISSAYOS_AAEwH7Fhj20840.jpg)
C語言中位運(yùn)算符的高級(jí)用法(3)
![C語言中位<b class='flag-5'>運(yùn)算符</b>的高級(jí)用法(3)](https://file1.elecfans.com/web2/M00/94/3D/wKgaomTkIWqAFds4AAEMc8a_-4s583.jpg)
C語言運(yùn)算符的使用方法
![C語言<b class='flag-5'>運(yùn)算符</b>的使用方法](https://file1.elecfans.com/web2/M00/AC/09/wKgaomVDF1-AYBFKAACPJ18ESQk001.jpg)
2.7 python運(yùn)算符
條件運(yùn)算符是什么_條件運(yùn)算符有哪些
![條件<b class='flag-5'>運(yùn)算符</b>是什么_條件<b class='flag-5'>運(yùn)算符</b>有哪些](https://file1.elecfans.com//web2/M00/A6/E7/wKgZomUMQSuAbA9jAAA7bHPujzo538.png)
單目運(yùn)算符是什么_單目運(yùn)算符有哪些
![單目<b class='flag-5'>運(yùn)算符</b>是什么_單目<b class='flag-5'>運(yùn)算符</b>有哪些](https://file.elecfans.com/web1/M00/46/12/o4YBAFqRG1aAAzScAABA3aO8y-4633.png)
淺析MySQL中的各類運(yùn)算符
![淺析MySQL<b class='flag-5'>中</b>的各類<b class='flag-5'>運(yùn)算符</b>](https://file.elecfans.com/web1/M00/BA/34/o4YBAF6YKCOAdrrkAADxZ-io9KA956.png)
python運(yùn)算符是什么
C語言的運(yùn)算符
![C語言的<b class='flag-5'>運(yùn)算符</b>](https://file.elecfans.com/web2/M00/92/C6/poYBAGP0ZRyADmSaAAAauKdGrW4934.jpg)
評(píng)論