《看漫畫學Python》學習筆記(三)——運算符

本文內容是基于《看漫畫學Python:有趣、有料、好玩、好用(全彩版)》的學習筆記

文章導圖

文章導圖

1. 什么是運算符

運算符能夠把數據串聯起來,形成表達式,并計算返回結果

2. 算數運算符

能夠連接整數類型和浮點類型數據的運算符是算數運算符,分為一元運算符和二元運算符

(1) 一元運算符

一元運算符有:+(正號)和-(減號)。

示例代碼如下:

num = 3
print(+num)
# 3
print(-num)
# -3

(2) 二元運算符

二元運算符如下表所示:

名稱 運算符 說明 示例
+ 左操作數和右操作數的和 1 + 1 = 2
- 左操作數和右操作數的差 1 - 1 = 0
* 左操作數和右操作數的積 1 * 1 =1
/ 左操作數除右操作數的商 4 / 2 = 2
取余 % 左操作數除右操作數的余數 5 % 2 = 1
** 左操作數的右操作數次冪 2 ** 3 = 8
整除 // 左操作數除右操作數的商取整數位 6 // 4 = 1

示例代碼如下:

num1 = 6
num2 = 4
print(num1 + num2)
# 10
print(num1 - num2)
# 2
print(num1 * num2)
# 24
print(num1 / num2)
# 1.5
print(num1 % num2)
# 2
print(num1 ** num2)
# 1296
print(num1 // num2)
# 1

3. 比較運算符

用于比較兩個表達式的大小的運算符是比較運算符,其返回結果為布爾類型數據。
兩個表達式的類型要能夠相互兼容,即進行隱式轉換。
比較運算符如下表所示:

名稱 運算符 說明 示例
等于 == 左操作數等于右操作數時返回True,否則返回False num1 == num2
不等于 != 左操作數不等于右操作數時返回True,否則返回False num1 != num2
大于 > 左操作數大于右操作數時返回True,否則返回False num1 > num2
小于 < 左操作數小于右操作數時返回True,否則返回False num1 < num2
大于等于 >= 左操作數大于等于右操作數時返回True,否則返回False num1 >= num2
小于等于 <= 左操作數小于等于右操作數時返回True,否則返回False num1 <= num2

示例代碼如下:

# 等于 ==
print(3 == 3)
# True
print(3 == 4)
# False

# 不等于 !=
print(3 != 4)
# True
print(3 != 3)
# False

# 大于 >
print(3 > 4)
# False
print(6 > 4)
# True

# 小于 <
print(3 < 4)
# True
print(3 < 3)
# False

# 大于等于 >=
print(3 >= 4)
# False
print(3 >= 3)
# True

# 小于等于 <=
print(3 <= 3)
# True
print(3 <= 0)
# False

4. 邏輯運算符

用于對布爾型變量進行運算的運算符是邏輯運算符,其返回結果是布爾類型。
邏輯運算符如下表所示:

名稱 運算符 說明 示例
邏輯非 not 取反,若操作數是True,則返回False;反之,若操作數是False,則返回True not flag
邏輯與 and 左操作數和右操作數都為True,則返回True,否則返回False flag1 and flag2
邏輯或 or 左操作數和右操作數都為False,則返回False,否則返回True flag1 or flag2

其中,邏輯與中有種特殊情況是短路與,當左操作數為False時,不再計算右操作數,直接返回False;邏輯或中有種特殊情況是短路或,當左操作數為True時,不再計算右操作數,直接返回True。
示例代碼如下:

# 邏輯非 not
print(not True)
# False
print(not False)
# True

# 邏輯與 and
print(True and True)
# True
print(False and False)
print(False and True)
print(True and False)
# 以上三種結果一致
# False

# 邏輯或 or
print(True or False)
print(False or True)
print(True or True)
# 以上三種結果一致
# True
print(False or False)
# False

5. 位運算符

用二進制單位進行運算的運算符是位運算符,其操作數和結果均為整數類型。
位運算符如下表所示:

名稱 運算符 說明 示例
位反 ~ 將操作數的值按位取反 ~ num
位與 & 左操作數和右操作數按位進行位與運算 num1 & num2
位或 | 左操作數和右操作數按位進行位或運算 num1 | num2
位異或 ^ 左操作數和右操作數按位進行位異或運算 num1 ^ num2
右移 >> 左操作數右移右操作數個位,高位用符號位補位 num << 2
左移 << 左操作數左移右操作數個位,低位用0補位 num >> 2

示例代碼如下:

# 十進制 2
num1 = 0b010
# 十進制 5
num2 = 0b101
print(~ num1)
# -3
print(~ num2)
# -6
print(num1 & num2)
# 0
print(num1 | num2)
# 7
print(num1 ^ num2)
# 7
print(num1 >> 2)
# 0
print(num2 >> 2)
# 1
print(num1 << 2)
# 8
print(num2 << 2)
# 20

6. 賦值運算符

算術運算符和位運算中的二元運算符有對應的賦值運算符。
賦值運算符如下表所示:

名稱 運算符 說明 示例
加賦值 += 等價于先 + 后 = num += num1
減賦值 -= 等價于先 - 后 = num -= num1
乘賦值 *= 等價于先 * 后 = num *= num1
除賦值 /= 等價于先 / 后 = num /= num1
取余賦值 %= 等價于先 % 后 = num %= num1
冪賦值 **= 等價于先 ** 后 = num **= num1
整除賦值 //= 等價于先 // 后 = num //= num1
位與賦值 &= 等價于先 & 后 = num &= num1
位或賦值 |= 等價于先 | 后 = num |= num1
位異或賦值 ^= 等價于先 ^ 后 = num ^= num1
左移賦值 <<= 等價于先 << 后 = num <<= 2
右移賦值 >>= 等價于先 >> 后 = num >>= 2

7. 運算符的優先級

在位運算中,大體的優先級為:算術運算符 → 位運算符 → 關系運算符 → 邏輯運算符 → 賦值運算符
運算符的優先級如下表所示:

優先級 運算符 說明
1 () 小括號
2 **
3 ~ 位反
4 +, - 正負號
5 *, /, %, // 乘、除、取余、整除
6 +, - 加、減
7 <<, >> 位移
8 & 位與
9 ^ 位異或
10 | 位或
11 <, <=, >, >=, <>, !=, == 比較
12 not 邏輯非
13 and, or 邏輯與、邏輯或
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370