運算符
運算符:以1 + 2為例,1和2被稱為操作數(shù)执俩,“+” 稱為運算符厘惦。
Python語言支持以下類型的運算符:
- 算術(shù)運算符
- 比較(關(guān)系)運算符
- 賦值運算符
- 邏輯運算符
- 位運算符
- 成員運算符
- 身份運算符
- 三目運算符
算術(shù)元運算符
以下假設(shè)變量: a=10垂涯,b=20:
python中,有三種除法抵蚊,分別是
10/3 3.333333333
1.計算結(jié)果是浮點數(shù)施绎,即使兩個整數(shù)恰好整數(shù)溯革,結(jié)果也是浮點數(shù)
9/3 3.0
2.只取整數(shù)部分,余數(shù)被拋棄
10//3 3
3.余數(shù)運算谷醉,可以得到兩個整數(shù)相除的余數(shù)
10%3 1
如果想同時得到商和余數(shù)致稀,可以用這個方法
divmod(10,3) (3,1)
因為浮點數(shù)精度的問題,Python還存在一些計算方面的小問題
0.1+0.1+0.1-0.3
5.551115123125783e-17
要解決這個問題俱尼,可以導(dǎo)入decimal模塊
from decimal import Decimal
Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
Decimal('0.0')
比較運算符
1.下面三個選項哪個為True抖单?
'abc' < 'xyz'
# 為什么字符串可以進行大小比較,這是因為電腦存儲字符時,是以ASCII碼值存儲的
也就是A是65遇八,z是90.你輸入的字符也是一個對應(yīng)的數(shù)字
(3,2) < ('a','b')
2.請分別說出下面各項的值:
True == 1
False == 0
3>2>1
3>2>2
(3>2)>1
(3>2)>2
對于連續(xù)比較矛绘,Python是按這種機制解釋的:
3>2>1 等于 (3>2) and (2>1)
,相當于兩個比較刃永,然后用與&再結(jié)合起來货矮。
賦值運算符
注意對于 a /= b
之類的操作,等同于a = a / b
, 而不是 a = b / a
斯够,方向一定不要搞反了囚玫。
a = 1
a++
print(a)
在python中是沒有++的這種寫法
位運算符
按位運算符是把數(shù)字看作二進制來進行計算的。Python中的按位運算法則如下: 下表中變量 a 為 60读规,b 為 13抓督,二進制格式如下:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
邏輯運算符
Python語言支持邏輯運算符,但是沒有其它語言中的&&
和||
語法束亏,取而代之的是更加人性化的英文單詞and or not
(全部都是小寫字母)铃在。以下假設(shè)變量 a 為 10, b為 20:
x = False
y = True
x and y
False
a = 10
b = 20
a and b
20
成員運算符
in 與 not in
是Python獨有的運算符(全部都是小寫字母),用于判斷對象是否某個集合的元素之一碍遍,非常好用涌穆,并且運行速度很快。返回的結(jié)果是布爾值類型的True或者False雀久。
list1 = [1, 2, 3, 4, 5]
a = 1
for i in list1:
if i == a:
print("a在list1中")
else:
print('a不在list1中')
flag = False
for i in list1:
if i == a:
flag = True
break
if flag:
print("a是list1的元素之一")
else:
print("a不是list1的元素")
如果用in運算符來做的話,就不用這么麻煩了
list1 = [1, 2, 3, 4, 5]
a = 1
if a in list1:
print("a是list1的元素之一")
else:
print("a不是list1的元素")
身份運算符
這也是Python的特色語法(全部都是小寫字母)趁舀。
注意is
與比較運算符“==”的區(qū)別赖捌,兩者有根本上的區(qū)別,切記不可混用:
is用于判斷兩個變量的引用是否為同一個對象矮烹,而==用于判斷變量引用的對象的值是否相等越庇!
a = [1,2]
b = a
b is a
Ture
b == a
Ture
b = a[:]
b is a
False
b == a
Ture
a = 2
b = 2.0
b is a
a == b
三目運算符
python中的三目運算符不像其他語言一般的表示方法:判定條件?為真時的結(jié)果:為假時的結(jié)果。
在python中的格式為:為真時的結(jié)果 if 判定條件 else 為假時的結(jié)果奉狈,例如:
a = 1
b = 2
h = ""
h = a-b if a>b else a+b
如果a>b執(zhí)行a-b卤唉,如果a<b執(zhí)行a+b
運算符優(yōu)先級
下表列出了從最高到最低優(yōu)先級的所有運算符。優(yōu)先級高的運算符優(yōu)先計算或處理仁期,同級別的按從左往右的順序計算(賦值運算符除外桑驱,它是按從右往左的順序)