Python基礎(16)-運算符

16.1-算數運算符:

運算符 描述
+ 加-兩個對象相加
- 減 - 得到負數或是一個數減去另一個數
* 乘 - 兩個數相乘或是返回一個被重復若干次的字符串
/ 除 - a除以b
% 取模 - 返回除法的余數
** 冪 - 返回a的b次冪
// 取整除 - 返回商的整數部分

實例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下設置變量 a = 20,b = 10
a = 20
b = 10

print("a + b的值為:",a + b)

print("a - b的值為:",a - b)

print("a * b的值為:",a * b)

print("a / b的值為:",a / b)

print("a % b的值為:",a % b)

print("a ** b的值為:",a ** b)

print("a // b的值為:",a // b)

運行結果:

Python2 和 Python3 的區別:

在 Python2.7 中 11 / 4 = 2,在傳統的算數中是等于 2.75 的,這是因為 Python2.7 中使用的是舍去式除法,當兩個操作對象都是整數時,結果也是個整數,舍去式除法會舍去小數部分,如果想要在 Python2.7 中進行改變的話需要導入一個模塊。但在 Python3 中,這個除法的結果是浮點數類型。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import division
a = 11 / 4
print(a)

運行結果:

16.2-比較運算符:

運算符 描述
== 等于,比較對象是否相等
!= 不等于 - 比較兩個對象是否不相等
<> 不等于 - 比較兩個對象是否不相等,這個運算符類似 != 。(Python3中已廢棄)
> 大于 - 返回a是否大于b
< 小于 - 返回a是否小于b。
>= 大于等于 - 返回a是否大于等于b。
<= 小于等于 - 返回a是否小于等于b。

實例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下設置變量 a = 20,b = 10
a = 20
b = 10

if a == b:      #a == b 返回 False
    print("a == b")
else:
    print("a != b")

if a != b:      #a !=b 返回 True
    print("a != b")
else:
    print("a == b")

if a > b:       # a > b 返回 True
    print("a > b")
else:
    print("a < b")

if a < b:       # a < b 返回 False
    print("a < b")
else:
    print("a > b")

if a >= b:       # a >= b 返回 True
    print("a >= b")
else:
    print("a <= b")

if a <= b:       # a <= b 返回 False
    print("a <= b")
else:
    print("a >= b")

運行結果:

16.3-賦值運算符:

運算符 描述
= 簡單的賦值運算符
+= 加法賦值運算符
-= 減法賦值運算符
*= 乘法賦值運算符
/= 除法賦值運算符
%= 取模賦值運算符
**= 冪賦值運算符
//= 取整除賦值運算符

實例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下設置變量 a = 20,b = 10
a = 20
b = 10

a += b      #a += b 等效于 a = a + b
print("a += b:",a)

a -= b      #a -= b 等效于 a = a - b
print("a -= b:",a)

a *= b      #a *= b 等效于 a = a * b
print("a *= b:",a)

a /= b      #a /= b 等效于 a = a / b
print("a /= b:",a)

#修改了變量 a 和 b 的值
a = 20
b = 10

a %= b      #a %= b 等效于 a = a % b
print("a %= b:",a)

#修改了變量 a 和 b 的值
a = 20
b = 10

a **= b     #a **= b 等效于 a = a ** b
print("a **= b:",a)

#修改了變量 a 和 b 的值
a = 20
b = 10

a //= b     #a //= b 等效于 a = a // b
print("a //= b:",a)

運行結果:

16.4-位運算符:

運算符 描述
& 按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0
\ 按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1。
^ 按位異或運算符:當兩對應的二進位相異時,結果為1。
~ 按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1,且符號位進行補碼,簡單的可以理解為 ~a=-(a+1)。
<< 左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。
>> 右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數。

實例:

按位運算符就是把數字看作二進制來進行計算的。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
以下設置變量 a = 60,b = 13
二進制格式: a = 00111100,b = 00001101
"""
a = 60      # a = 00111100
b = 13      # b = 00001101

print("按位與運算符:",a & b,bin(a & b))       # 12 = 00001100

print("按位或運算符:",a | b,bin(a | b))       # 61 = 00111101

print("按位異或運算符:",a ^ b,bin(a ^ b))      # 49 = 00110001

print("按位取反運算符:",~a,bin(-61))       # 60 -> -(60+1) 即 -61 轉為二進制為 -00111101

print("左移動運算符:",a << 2,bin(a << 2))     # 240 = 11110000

print("右移動運算符:",a >> 2,bin(a >> 2))     # 15 = 00001111

運行結果:

16.5-邏輯運算符

運算符 邏輯表達式 描述
and a and b 布爾"與" - 如果 a 為 False,a and b 返回 False,否則它返回 b 的計算值。
or a or b 布爾"或" - 如果 a 是非 0,它返回 a 的值,否則它返回 b 的計算值。
not not a 布爾"非" - 如果 a 為 True,返回 False 。如果 a 為 False,它返回 True。

實例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下設置變量 a = 20,b = 10
a = 20
b = 10

if a and b:
    print("變量 a 和 b 都為 True")
else:
    print("變量 a 和 b 有一個不為 True")

if a or b:
    print("變量 a 和 b 有一個為 True 或都為 True")
else:
    print("變量 a 和 b 都不為 True")

if not(a and b):
    print("變量 a 和 b 都為 False 或一個為 False")
else:
    print("變量 a 和 b 都為 true")

運行結果:

16.6-成員運算符:

運算符 描述
in 如果在指定的序列中找到值返回 True,否則返回 False。
not in 如果在指定的序列中沒有找到值返回 True,否則返回 False。

實例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
list = [11,22,33,44,[55,66,77,88]]

ret = 22 in list        # 22 在 list列表中所以返回 True
print(ret)

ret = [55,66,77,88] in list     # [55,66,77,88]該列表 在 list列表中所以返回 True
print(ret)

ret = 55 not in list        # 55 不在 list列表中所以返回True
print(ret)

運行結果:

16.7-身份運算符:

運算符 描述
is is 是判斷兩個標識符是不是引用自一個對象
is not is not 是判斷兩個標識符是不是引用自不同對象

實例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#以下設置變量 a = 20,b = 20
a = 20
b = 20

c = a is b      # 類似于 id(a) == id(b),a 和 b 引用的是統一對象所以返回 True
print(c)

c = a is not b      # a 和 b 引用的是統一對象所以返回 False
print(c)

運行結果:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,791評論 6 545
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,795評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,943評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,057評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,773評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,106評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,082評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,282評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,793評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,507評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,741評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,220評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,929評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,325評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,661評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,482評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,702評論 2 380

推薦閱讀更多精彩內容