算術(shù)運(yùn)算符
- 加法:+
- 減法:-
- 乘法: *
- 除法: /(與數(shù)學(xué)中除法一致) 或 //(地板除留攒,只取結(jié)果的整數(shù)部分拭宁,并且是向下取整腔剂,即若結(jié)果為4.5取4登渣,若結(jié)果為-4.5則取-5)
PS: Python2.x 版本里呻顽,整數(shù)除整數(shù)喉前,只能得出整數(shù)。如果要得到小數(shù)部分,把其中一個數(shù)改成浮點(diǎn)數(shù)即可。 - 取余:%
- 冪次:**
比較運(yùn)算符
- 等于 ==
- 不等于 != 或 <>(a != b 或 a <> b)
- 大于 >
- 小于 <
- 大于等于 >=
- 小于等于 <=
賦值運(yùn)算符
- 簡單賦值 =
- 加法賦值 += (例:i += 1 等價于 i = i + 1郑口,以下各種賦值均類似于加法賦值)
- 減法賦值 -=
- 乘法賦值 *=
- 除法賦值 /=
- 取整除賦值 //=
- 取余賦值 %=
- 冪賦值 **=
位運(yùn)算符
位運(yùn)算過程中,把數(shù)字轉(zhuǎn)化成二進(jìn)制計(jì)算,然后再轉(zhuǎn)化成數(shù)字族购。
- 按位與 & :參與運(yùn)算的兩個值,如果兩個相應(yīng)位都為1,則該位的結(jié)果為1,否則為0。
- 按位或 | :參與運(yùn)算的兩個值, 只要有一個位置為1兔院,則該位的結(jié)果為1殖卑。
- 按位異或 ^ :參與運(yùn)算的兩個值,如果兩個相應(yīng)位數(shù)值不同,則結(jié)果為1秆乳,若相同懦鼠,則結(jié)果為0.
- 按位取反 ~ :對數(shù)據(jù)的每個二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)? 。
- 左移位 << :若 a << 2 將數(shù)字a對應(yīng)的二進(jìn)制數(shù)集體向左移動2位屹堰,后面空余的2位補(bǔ)零肛冶。例:原a二進(jìn)制:0011 1100, a << 2 ,得 1111 0000,加黑為補(bǔ)零位扯键。
- 右移位 >> :若 a >> 3 將數(shù)字a對應(yīng)的二進(jìn)制數(shù)集體向右移動2位睦袖,前面空余的2位補(bǔ)零。例:原a二進(jìn)制:0011 1100, a >> 2 ,得 0000 1111荣刑,加黑為補(bǔ)零位馅笙。
邏輯運(yùn)算符
邏輯運(yùn)算符返回值為true 或 false。
- 布爾與 and :如果 x 為 False厉亏,x and y 返回 False董习,否則它返回 y 的計(jì)算值。爱只。
- 布爾或 or :如果 x 是非 0皿淋,它返回 x 的值,否則它返回 y 的計(jì)算值恬试。
- 布爾非 not : 如果 x 為 True窝趣,返回 False 。如果 x 為 False训柴,它返回 True哑舒。
成員運(yùn)算符
檢測 x 是否在 y 的序列中。
- in :若 x 在 y 的序列中幻馁,則返回True洗鸵,否則返回False。
- not in :若 x 不在 y 的序列中宣赔,則返回True预麸,否則返回False。
身份運(yùn)算符
用于比較兩個對象 A 和 B 的存儲單元是否一致儒将,即判斷兩個標(biāo)識符 A 和 B 是不是引用自一個對象吏祸。
- is : x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False钩蚊。 # id() 函數(shù)用于獲取對象內(nèi)存地址贡翘。
- is not : x is not y , 類似 id(a) != id(b)砰逻。如果引用的不是同一個對象則返回結(jié)果 True鸣驱,否則返回 False。 # id() 函數(shù)用于獲取對象內(nèi)存地址蝠咆。
python內(nèi)不同數(shù)據(jù)類型的存儲方式總結(jié)
可變對象:list,dict
不可變對象:int, string, float, tuple, None
實(shí)例:
1)int
可以看出踊东,圖1中a和b都為20北滥,二者存儲空間相同。因?yàn)閕nt對象在python中是不變的闸翅。
因此再芋,int類型數(shù)值相等的兩個int,指向同一對象坚冀。
2)string
可以看出济赎,只要字符串的內(nèi)容相同,他們的存儲空間也相同记某。因此指向同一個對象司训。
了解一下,若輸入a = 'python'液南,在計(jì)算機(jī)內(nèi)存要怎么做呢壳猜?首先,在內(nèi)存中創(chuàng)建了一個'python'字符串滑凉,其次蓖谢,在內(nèi)存中創(chuàng)建了一個名為a的變量,并將a指向'python'譬涡。因此闪幽,不同的變量a 和 b可以同時指向不變對象'python'。
因此涡匀,字符串內(nèi)容相同的兩個字符串盯腌,其實(shí)指向的是同一個對象陨瘩。
3) tuple
若tuple內(nèi)各個元素值相等帚湘,二者存儲空間不同甚淡,但是若通過賦值贯卦,二者存儲空間相同撵割。
4)float
float與tuple類似啡彬。若float內(nèi)各個元素值相等,二者存儲空間不同契吉,但是若通過賦值,二者存儲空間相同。
5)list
若list內(nèi)各個元素值相等妄辩,二者存儲空間不同山上,但是若通過賦值佩憾,二者存儲空間相同妄帘。
6)dict
若dict內(nèi)各個元素值相等,二者存儲空間不同鬼廓,但是若通過賦值碎税,二者存儲空間相同雷蹂。
因此杯道,做比較的6種數(shù)據(jù)類型党巾,只有int和string兩種數(shù)據(jù)類型昧港,若數(shù)值相同會共享同一存儲空間。
參考鏈接: