Python中的運算符

1.1 概述

python語言支持以下的運算符:

  • 算數(shù)運算符
  • 比較運算符
  • 賦值運算符
  • 邏輯(關(guān)系)運算符
  • 位運算符
  • 成員運算符
  • 身份運算符
  • 運算符的優(yōu)先級

1.2 Python算術(shù)運算符

假設(shè)變量a為10仔夺,變量b為21:

運算符 描述 實例
+ 加 - 兩個對象相加 a + b 輸出結(jié)果 31
- 減 - 得到負(fù)數(shù)或是一個數(shù)減去另一個數(shù) a - b 輸出結(jié)果 -11
* 乘 - 兩個數(shù)相乘或是返回一個被重復(fù)若干次的字符串 a * b 輸出結(jié)果 210
/ 除 - x 除以 y b / a 輸出結(jié)果 2.1
% 取模 - 返回除法的余數(shù) b % a 輸出結(jié)果 1
** 冪(乘方) - 返回x的y次冪 a**b 為10的21次方
// 取整除 - 向下取接近除數(shù)的整數(shù) >>> 9//2 4 >>> -9//2 -5

說明:

  • 優(yōu)先級: 冪(乘方) > 乘、除、整除、取余 > 加晰骑、減严卖; 可以使用括號改變運算順序

  • 結(jié)合順序(對優(yōu)先級相同的): 從左到右;

  • 整數(shù)除整數(shù),運算結(jié)果為小數(shù)

  • 對于整除運算靶端, 它是向下圓整結(jié)果建钥。因此在結(jié)果為負(fù)數(shù)的情況下藤韵, 圓整后將離0更遠(yuǎn)。

    
    # 10/(-3) = -3 ... 1
    
    # -10/ 3  = -3 ... -1
    
    10 // -3 # -4
    
    -10 // 3 # -4
    
    -10 // -3 # 3
    
    10 % -3 # -2
    
    - 10 % 3 # 2
    
    - 10 % -3 # -1
    
    
    • 取整的情況下: 向下圓整锦针, 因此在結(jié)果為負(fù)數(shù)的情況下, 圓整后將離0更遠(yuǎn)置蜀;
    • 取余的情況下奈搜, 其符號由被除數(shù)決定的, 其結(jié)果是 該值減去由取整的結(jié)果乘以被除數(shù)的結(jié)果盯荤;

1.3 比較運算符

? 比較運算: 是發(fā)生在兩個同類型數(shù)據(jù)間的一種操作馋吗,比較運算是使用固定的比對規(guī)則對兩個數(shù)據(jù)進行比對,如果比較運算式子成立得到結(jié)果True,如果不成立秋秤,得到結(jié)果False

· 假設(shè)變量a為10宏粤,變量b為20:

運算符 描述 實例
== 等于 - 比較對象是否相等 (a == b) 返回 False脚翘。
!= 不等于 - 比較兩個對象是否不相等 (a != b) 返回 True。
> 大于 - 返回x是否大于y (a > b) 返回 False绍哎。
< 小于 - 返回x是否小于y来农。所有比較運算符返回1表示真,返回0表示假崇堰。這分別與特殊的變量True和False等價沃于。注意,這些變量名的大寫海诲。 (a < b) 返回 True繁莹。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False特幔。
<= 小于等于 - 返回x是否小于等于y咨演。 (a <= b) 返回 True。
  • 總結(jié): 只要包含比較運算符的表達(dá)式蚯斯, 結(jié)果一定是 bool類型薄风;

  • 字符串進行比較規(guī)則: 0..數(shù)字..9 < A..大寫字母..Z < a..小寫字母..z

  • 字符串比較運算規(guī)則
    ? 1.對兩個字符串中對應(yīng)位置每個字符逐一比對
    ? 2.排序較小的整體字符串值小
    ? 3.如果比較結(jié)果相等,比較下一個字母
    ? 4.直到比對到最后一個字母
    ? 5.若比對的一方?jīng)]有字符溉跃,則整體字符串值小

  • 對象的比較 ==is

    is 用于判斷兩個變量引用對象是否為同一個(即村刨, id()獲取的內(nèi)存地址是否相同), == 用于判斷引用變量的值是否相等撰茎。

1.4 賦值運算符

? 假設(shè)變量a為10智嚷,變量b為20:

運算符 描述 實例
= 簡單的賦值運算符 c = a + b 將 a + b 的運算結(jié)果賦值為 c
+= 加法賦值運算符 c += a 等效于 c = c + a
-= 減法賦值運算符 c -= a 等效于 c = c - a
*= 乘法賦值運算符 c *= a 等效于 c = c * a
/= 除法賦值運算符 c /= a 等效于 c = c / a
%= 取模賦值運算符 c %= a 等效于 c = c % a
**= 冪賦值運算符 c **= a 等效于 c = c ** a
//= 取整除賦值運算符 c //= a 等效于 c = c // a

說明:

  • 賦值運算的左側(cè)只能是變量,右側(cè)可以是變量辕棚,也可以是數(shù)字

1.5 邏輯(關(guān)系)運算符

? 關(guān)系運算是發(fā)生在兩個布爾型數(shù)據(jù)間的一種操作由驹,關(guān)系運算是根據(jù)固定規(guī)則對兩個布爾值進行運算,最終結(jié)果是布爾值炫惩。

假設(shè)變量 a 為 10, b為 20:

運算符 邏輯表達(dá)式 描述 實例
and x and y 布爾"與" - 如果 x 為 False僻弹,x and y 返回 False,否則它返回 y 的計算值他嚷。 (a and b) 返回 20蹋绽。
or x or y 布爾"或" - 如果 x 是 True,它返回 x 的值筋蓖,否則它返回 y 的計算值卸耘。 (a or b) 返回 10。
not not x 布爾"非" - 如果 x 為 True粘咖,返回 False 蚣抗。如果 x 為 False,它返回 True瓮下。 not(a and b) 返回 False

說明:

  • 與其它語言區(qū)別: c/javascript: && 翰铡、|| 钝域、 !

  • 運算法則:

    • 邏輯與(and):同真則真
    • 邏輯或(or):同假則假
    • 邏輯非(not):非真即假,非假即真
  • 短路特性: 如果一個條件 可以決定整個式子的結(jié)果, 那么代碼終止锭魔, 拿這個條件當(dāng)結(jié)果例证;

  • 數(shù)字可以作為關(guān)系運算的數(shù)據(jù)進行運算,0表示False,非0表示True

    
    print(2 and 0) # 0
    
    print(2 and 3) # 3
    
    print(0 and 3) # 0
    
    # 任意操作數(shù)可以決定整個式子值的赂毯,最終結(jié)果即為該操作數(shù)(參看真值表)
    
    >>> True and 0    #→ 0
    
    >>> 0 and True    #→ 0
    
    >>> 4 or False    #→ 4
    
    >>> False or 4    #→ 4
    
    # 如果兩個操作數(shù)都無法單獨決定整個式子值的(參看真值表)战虏,最終結(jié)果即為后面的操作數(shù)
    
    >>> True and 10   #→ 10
    
    >>> 10 and True   #→ True
    
    >>> False or 0    #→ 0
    
    >>> 0 or False    #→ False
    
    

1.6 位運算符

運算符 描述 實例
& 按位與運算符:參與運算的兩個值,如果兩個相應(yīng)位都為1,則該位的結(jié)果為1,否則為0 (a & b) 輸出結(jié)果 12 ,二進制解釋: 0000 1100
| 按位或運算符:只要對應(yīng)的二個二進位有一個為1時党涕,結(jié)果位就為1烦感。 (a | b) 輸出結(jié)果 61 ,二進制解釋: 0011 1101
^ 按位異或運算符:當(dāng)兩對應(yīng)的二進位相異時膛堤,結(jié)果為1 (a ^ b) 輸出結(jié)果 49 手趣,二進制解釋: 0011 0001
~ 按位取反運算符:對數(shù)據(jù)的每個二進制位取反,即把1變?yōu)?,把0變?yōu)?。~x 類似于 -x-1 (~a ) 輸出結(jié)果 -61 肥荔,二進制解釋: 1100 0011绿渣, 在一個有符號二進制數(shù)的補碼形式。
<< 左移動運算符:運算數(shù)的各二進位全部左移若干位燕耿,由"<<"右邊的數(shù)指定移動的位數(shù)中符,高位丟棄,低位補0誉帅。 a << 2 輸出結(jié)果 240 淀散,二進制解釋: 1111 0000
>> 右移動運算符:把">>"左邊的運算數(shù)的各二進位全部右移若干位,">>"右邊的數(shù)指定移動的位數(shù) a >> 2 輸出結(jié)果 15 蚜锨,二進制解釋: 0000 1111

1.7 成員運算符

運算符 描述 實例
in 如果在指定的序列中找到值返回 True档插,否則返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True亚再。
not in 如果在指定的序列中沒有找到值返回 True郭膛,否則返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True氛悬。

1.8 身份運算符

運算符 描述 實例
is is 是判斷兩個標(biāo)識符是不是引用自一個對象 x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True则剃,否則返回 False
is not is not 是判斷兩個標(biāo)識符是不是引用自不同對象 x is not y , 類似 id(a) != id(b)如捅。如果引用的不是同一個對象則返回結(jié)果 True棍现,否則返回 False。

注: id() 函數(shù)用于獲取對象內(nèi)存地址伪朽。

1.9 運算符優(yōu)先級

從最高到最低優(yōu)先級的所有運算符:

運算符 描述
** 指數(shù) (最高優(yōu)先級)
~ + - 按位翻轉(zhuǎn), 一元加號和減號
* / % // 乘轴咱,除汛蝙,取模和取整除
+ - 加法減法
>> << 右移烈涮,左移運算符
& 位 'AND'
^ | 位運算符
<= 朴肺、<、 >坚洽、 >= 比較運算符
==戈稿、 != 等于運算符
=、 %=讶舰、 /=鞍盗、 //=、 -=跳昼、 +=般甲、 *=、 **= 賦值運算符
is is not 身份運算符
in not in 成員運算符
and or not 邏輯運算符

已同步至我的CSDN博客,歡迎關(guān)注鹅颊!
同時也開通了我個人網(wǎng)站http://www.kendny.cn, 歡迎訪問敷存!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市堪伍,隨后出現(xiàn)的幾起案子锚烦,更是在濱河造成了極大的恐慌,老刑警劉巖帝雇,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涮俄,死亡現(xiàn)場離奇詭異,居然都是意外死亡尸闸,警方通過查閱死者的電腦和手機彻亲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來室叉,“玉大人睹栖,你說我怎么就攤上這事〖牒郏” “怎么了野来?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長踪旷。 經(jīng)常有香客問我曼氛,道長,這世上最難降的妖魔是什么令野? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任舀患,我火速辦了婚禮,結(jié)果婚禮上气破,老公的妹妹穿的比我還像新娘聊浅。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布低匙。 她就那樣靜靜地躺著旷痕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顽冶。 梳的紋絲不亂的頭發(fā)上欺抗,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音强重,去河邊找鬼绞呈。 笑死,一個胖子當(dāng)著我的面吹牛间景,可吹牛的內(nèi)容都是我干的佃声。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼倘要,長吁一口氣:“原來是場噩夢啊……” “哼秉溉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碗誉,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤召嘶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后哮缺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弄跌,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年尝苇,在試婚紗的時候發(fā)現(xiàn)自己被綠了铛只。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡糠溜,死狀恐怖淳玩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情非竿,我是刑警寧澤蜕着,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站红柱,受9級特大地震影響承匣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锤悄,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一韧骗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧零聚,春花似錦袍暴、人聲如沸些侍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娩梨。三九已至,卻和暖如春览徒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颂龙。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工习蓬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人措嵌。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓躲叼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親企巢。 傳聞我的和親對象是個殘疾皇子枫慷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 《裕語言》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 26,849評論 5 19
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,345評論 0 2
  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,823評論 2 16
  • 運算符是處理數(shù)據(jù)的基本方法浪规,用來從現(xiàn)有的值得到新的值或听。JavaScript 提供了多種運算符,本章逐一介紹這些運算...
    許先生__閱讀 605評論 0 3
  • 從今天起,開始游蕩缸濒。 從10年退學(xué)創(chuàng)業(yè)至今足丢,迭迭蕩蕩折騰過好幾個公司。從互聯(lián)網(wǎng)到物聯(lián)網(wǎng)庇配,從夢想到賺錢再到夢想斩跌,就連...
    大圣Jackie閱讀 149評論 0 0