Python基礎(chǔ)之運算符

文章目錄

1 算術(shù)運算符
2 位運算符
3 比較運算符
4 賦值運算符
5 身份運算符
6 成員運算符
7 邏輯運算符


今天總結(jié)一下Python中七大運算符的意義仅孩,本文大體是按照運算符的優(yōu)先級排序的亚脆,看目錄就知道各個運算符的優(yōu)先級高低啦~~


1 算術(shù)運算符

指數(shù)** 優(yōu)先級最高堕花,其次是 乘*很澄,除/,取整//框往,取余%焚廊,最后是 加+,減-撤防。

這里重點說下/虽风,//,%寄月,其他運算符很簡單辜膝,不用多解釋了吧。

1)一個斜杠/漾肮,除法厂抖,兩個int相除也保留小數(shù)。

3/2 = 1.5
10/3 = 3.3333333333333335
4/2 = 2.0

2)兩個斜杠//克懊,對除法結(jié)果向下取整忱辅。當//兩側(cè)存在浮點型時,結(jié)果取整的基礎(chǔ)上會保留.0谭溉。

3//2 = 1
-3//2 = -2 # 向下取整就是向數(shù)值小的那一方向取整墙懂,所以是-2
4//2 = 2
4//2.0 = 2.0

3)百分號%,取模扮念,返回除法的余數(shù)损搬。%兩側(cè)必須是整數(shù),當存在存在負整數(shù)時,余數(shù)符號與%右邊的一致巧勤。

5%3 = 2
-3%2 = 1
3%(-2) = -1 # 符號與-2一致嵌灰,所以是-1
4%2 = 0
4%2.0 = 0.0


2 位運算符

按位運算符是基于二進制來進行計算的,在二進制中 1 為 True颅悉,0 為 False:

1)位邏輯運算符: 與&伞鲫,或|,異或^签舞,取反~秕脓。

  • & :按位與運算符,兩個二進制數(shù)相應(yīng)位都為1儒搭,則該位的結(jié)果為1吠架,否則為0;
  • | :按位或運算符搂鲫,兩個二進制數(shù)相應(yīng)位有一個為1時傍药,結(jié)果位就為1;
  • ^ :異或運算符魂仍,兩個二進制數(shù)相應(yīng)位相異時拐辽,結(jié)果為1;
  • ~ :取反運算符擦酌,對二進制進行取反俱诸,即 1 取反為 0 ,0 取反為 1赊舶。

2)位移運算符:左移<< 睁搭,右移>> 。

  • << 每移動一位笼平,相當于乘2园骆,
  • >> 每移動一位,相當于除以2寓调,如果不能整除锌唾,則向下取整。

看到這里夺英,你也許沒懂位運算符這部分到底在說什么……為了把這塊講明白晌涕,我會另外寫一篇文章。篇幅所限秋麸,這一次就不深入展開了~

就暫且先知道有這么個東西渐排,下次填坑 ~


3 比較運算符

最基本的: 小于<, 大于>灸蟆,等于==驯耻,小于等于<=亲族,大于等于>=,不等于!=可缚。這些一看就明白霎迫,也無需解釋。


4 賦值運算符

1)等于 =帘靡,很簡單了知给,就是把右邊的值,打上左邊的標簽描姚。
2)+=涩赢,就是把右邊和左邊的原值相加,把左邊的值更新為相加后的新值轩勘。例如 a+=1 就等價于 a=a+1筒扒,但 a=a+1 沒有a+=1 的效率高。
3)同理還有 -=绊寻,* =花墩,/=,%=澄步,**=冰蘑,//=。


5 身份運算符

身份運算符就是is 和 is not村缸。這里說一下新手容易混淆的is祠肥,=,==這三個的區(qū)別王凑。

1)先說 is 和 ==

  • is 比較兩個對象的 id 值是否相等搪柑,即聋丝,是否指向同一個內(nèi)存地址索烹;
  • == 比較的是兩個對象的內(nèi)容是否相等,即弱睦,值是否相等百姓。
a = "Python"
b = a
b == a
True

id(a)
2974848979888 # a的地址
id(b)
2974848979888 # b的地址和a相同
b is a
True

上面的例子當中b和a的內(nèi)存地址是相同的,它們指向同一塊內(nèi)存况木,因而is 和 == 的結(jié)果都為True,這是因為直接賦值都是對值的引用垒拢。如果b 和 a 指向了不同的內(nèi)存,那么 b is a 的結(jié)果為False火惊,而 b==a的結(jié)果為True求类。

a = [1,2,3]
b = [1,2,3]
print(a == b)
True

id(a)
2974887936648
id(b)
2974887936456 # a、b兩個列表里的元素雖然相同屹耐,但是地址不同
print(a is b)
False

最后還有一點要注意尸疆,Python僅對比較小的整數(shù)對象進行緩存(范圍為[-5, 256]),并非是所有整數(shù)對象。
舉個例子說明只有小的整數(shù)對象[-5,256]被放入緩存供重復使用:

a = 1
b = 1
print(a == b)
True
print(a is b)
True

a = 257
b = 257
print(a == b)
True
print(a is b)
False

但是寿弱,這種情況僅在命令行中執(zhí)行才有犯眠,當在Pycharm或者保存為文件執(zhí)行,結(jié)果就不一樣了症革,這是因為解釋器做了一部分優(yōu)化筐咧。

2)再看 = 和 ==

這兩個比較好區(qū)分。

  • = 的含義是賦值噪矛,將某一數(shù)值賦給某個變量量蕊,比如a=3,將3這個數(shù)值賦予給a艇挨;
  • == 是判斷是否相等危融,返回True 或 False。比如1 == 1雷袋,他們是相等的吉殃,就返回True;1==2楷怒,他們是不相等的蛋勺,那么就返回False。
a = [1,2]
b = [1,2]
c = a
print(a == b)
True
print(a is b)
False
print(a is c)
True

3)!= 和 is not

  • 雙等號 == 和不等號 != 判斷是否相等鸠删;
  • is 和 is no t判斷是否是同一個對象抱完。
a = [1,2,3]
b = [1,2,3]

print(a == b)
True
print(a != b)
False

print(a is b)
False
print(a is not b)
True


6 成員運算符

in 和 not in,用于判斷元素是否在當前對象中

print('ab' in 'abc')
True

print(a in ['a','b','c'])
False

print('a' in ['a','b','c'])
True

print(['a','b'] in ['a','b','c'])
False

print(['a','b'] not in ['a','b','c'])
True


7 邏輯運算符

優(yōu)先級:not > and > or刃泡。

  • and 兩側(cè)都是True則返回True巧娱,否則返回False;
  • or 兩側(cè)都是False則返回False烘贴,否則返回True禁添。

短路現(xiàn)象

  • and 前面的表達式為False,則后面的表達式不執(zhí)行桨踪;
  • or 前面的表達式為True老翘,則后面的表達式不執(zhí)行。
print(1 > 2 and  3 < 2 or not 4 > 5) 
True 

拆解一下上面的例子锻离,1 > 2 and 3 < 2 or not 4 > 5铺峭。

  1. 因為比較運算符優(yōu)先級高于邏輯運算符,所以第一步轉(zhuǎn)化成 False and False or not False汽纠;
  2. 因為 not 優(yōu)先級大于 and卫键,所以轉(zhuǎn)化成 False and False or True;
  3. 因為 and 優(yōu)先級大于 or虱朵,所以轉(zhuǎn)化成 False or True莉炉;
  4. 最后結(jié)果是True啤呼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呢袱,隨后出現(xiàn)的幾起案子官扣,更是在濱河造成了極大的恐慌,老刑警劉巖羞福,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惕蹄,死亡現(xiàn)場離奇詭異,居然都是意外死亡治专,警方通過查閱死者的電腦和手機卖陵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來张峰,“玉大人泪蔫,你說我怎么就攤上這事〈” “怎么了撩荣?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長饶深。 經(jīng)常有香客問我餐曹,道長,這世上最難降的妖魔是什么敌厘? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任台猴,我火速辦了婚禮,結(jié)果婚禮上俱两,老公的妹妹穿的比我還像新娘饱狂。我一直安慰自己,他們只是感情好宪彩,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布休讳。 她就那樣靜靜地躺著,像睡著了一般毯焕。 火紅的嫁衣襯著肌膚如雪衍腥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天纳猫,我揣著相機與錄音,去河邊找鬼竹捉。 笑死芜辕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的块差。 我是一名探鬼主播侵续,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼倔丈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了状蜗?” 一聲冷哼從身側(cè)響起需五,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轧坎,沒想到半個月后宏邮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡缸血,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年蜜氨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捎泻。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡飒炎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笆豁,到底是詐尸還是另有隱情漾峡,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布吵血,位于F島的核電站荠雕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扩氢。R本人自食惡果不足惜耕驰,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望录豺。 院中可真熱鬧朦肘,春花似錦、人聲如沸双饥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咏花。三九已至趴生,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昏翰,已是汗流浹背苍匆。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棚菊,地道東北人浸踩。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像统求,于是被迫代替她去往敵國和親检碗。 傳聞我的和親對象是個殘疾皇子据块,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351