1. 程式人生 > >python3教程(七):python 運算子

python3教程(七):python 運算子

python有各種各樣的運算子,不僅僅是+-*/這種算數運算,還有類似於=、+=這種賦值運算。

python中總共有算術運算、賦值運算、比較(關係)運算、邏輯運算、身份運算、成員運算、位運算(二進位制)共7種運算分類。

下面我們將挑一些重要且常用的來進行了解。

 

算數運算

關於算數運算我們在之前的python3教程(五):number裡面進行了解釋,算術運算的運算子分別為加(+)、減(-)、乘(*)、整除(//)、浮點除(/)、除餘(%)、次方(**)共七個。

 

賦值運算

我們在上一章變數,裡面的=就是賦值運算子的一種。賦值運算子分別為等於(=)、加後等於(+=)、減後等於(-=)、乘後等於(*=)、整除後等於(//=)、浮點除後等於(/=)、除餘後等於(%=)、乘方後等於(**=)共七個。

#+=就是相加後等於,a+=b就是a=a+b,其他的也是同理#
>>> a = 1
>>> b = 2
>>> a += b
>>> a
3

>>> a = 1
>>> b = 2
>>> b -= a
>>> b
1

>>> a = 4
>>> b = 6
>>> a *= b
>>> a
24

>>> a,b = 4,6
>>> a /= b
>>> a
0.6666666666666666

>>> a,b = 4,6
>>> b //= a
>>> b
1

>>> a,b = 4,6
>>> b %= a
>>> b
2

>>> a,b = 4,6
>>> a **= b
>>> a
4096

 

比較(關係)運算

比較(關係)運算主要是對值的大小進行運算,主要有等於(==)、大於( >)、小於(<)、大於等於( >=)、小於等於(<=)、不等於(!=)共六種。

#比較運算子中,涉及到一種資料型別:bool型別,這種型別的資料只有兩個值False(否)和True(對)#
#bool型別在其他的資料型別中也有相對應的值,在字串中False和True分別對應空字串和非空字串,在數字中False和True分別對應0和非0數字#

#比較運算是一種關係運算,即對兩個值之間是否相等來進行運算,返回的結果只有False和True#
#比較運算的關係對比一般用於數字當中#
>>> 1 == 1
True
>>> 1 == 1
True
>>> 1 == 2
False
>>> 1 < 2
True
>>> 1 <= 2
True
>>> 2 < 1
False
>>> 2 <= 1
False

 

邏輯運算

邏輯運算主要用於條件運算,主要有or(或)、and(且)、not(布林型別轉換)

#or表示或,即a or b時,如果a的值為True,則返回a,如果a的值為False,則返回b#
>>> 1 or 2
1
>>> 0 or 1
1
>>> 0 or 2
2
>>> '' or 1
1

#and表示且,即a and b and c時,預設返回a。在運算中,如果a、b、c其中一個值為False,則返回False#
>>> '' and 0 and 1
''

#not是轉換bool型別#
>>> not False
True
>>> not True
False

 

身份運算

身份運算主要是判斷兩個值是否為同一個記憶體地址,主要有is 和 is not 兩種。

#我們可以使用id()來檢視值的記憶體地址#
>>> id(1)
140718229861200
>>> id(2)
140718229861232


#身份運算主要是判定兩個變數值的記憶體地址是否相等#
>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = 1
>>> b = 0+1
>>> a is b
True


#is 不等同於 ==#
>>> 1 == 1.0
True
>>> 1 is 1.0
False

 

成員運算

成員運算主要用於判定某個值存在於另一個值內,主要有in和not in兩種。

 
>>> '1' in '123'
True
>>> '2' not in '456'
True

 

位運算(二進位制)

位運算主要是把數字看作二進位制來進行計算的,主要有按位與(&)、按位或(|)、按位異或(^)、取反(~)、左移動(<<)、右移動(>>),因為使用並不頻繁,所以就不細說了。

按位與(&):如果兩個二進位都為1,則該位結果為1,否則為0;
按位或(|):只要一個為1,則為1,否則為0;
按位異或(^):兩個二進位相異為為1(即兩個二進位要相反),否則為0;
取反(~):對資料的每個二進位制位取反,即把1變0,把0變1;
左移動(<<):運算數的各二進位全部向左移若干位;
右移動(>>):運算數的各二進位全部向右移若干位;

 

運算子優先順序

python運算子是有優先順序的,具體的可以檢視python3 運算子大全。python運算子優先順序也可以更改,使用()即可。

>>> 1 + 1 * 3 or 4 and 5
4

>>> (1 + 1) * (3 or (4 and 5))
6