Python中的運算子

2021-08-01 13:55:47 字數 3415 閱讀 4165

運算(符)

說明例項

+兩個物件相加

2 + 3 結果為 5

-兩個物件相減

3 - 2 結果為 1

*兩個數相乘或返回乙個重複若干次的序列

2 * 3 結果為 6; 'abc' * 2 結果為 'abcabc'

/兩個數相除

3 / 2 結果為 1.5

//整除,返回商的整數部分

3 // 2 結果為 1,3 // 2.0 結果為 1.0

%求餘/取模,返回除法的餘數

3 % 2 結果為 1,3 % 2.0 結果為 1.0

**求冪/次方

2 ** 3 結果為 8

運算(符)

描述例項

=簡單賦值運算子

a = 5, b = 3, c = a - b

+=加法賦值運算子

a += b 相當於 a = a + b

-=減法賦值運算子

a -= b 相當於 a = a -b

*=乘法賦值運算子

a = b 相當於 a = a b

/=除法賦值運算子

a /= b 相當於 a = a / b

//=取整除賦值運算子

a //= b 相當於 a = a // b

%=取模賦值運算子

a %= b 相當於 a = a % b

**=冪賦值運算子符

a = b 相當於 a = a b

python有8中比較操作,它們具有相同的優先順序。比較操作可以被任意連線,比如 x< y <= z 等同於 x < y and y <= z,只是第一種形式下的y只被評估一次。另外,當 x < y不成立時,這兩種形式下的z都不會被評估。

運算(符)

說明例項

<

嚴格小於

3 < 5 結果為true,5 < 5 結果為false

<=

小於或等於

3 <= 5 結果為true,5 <= 5 結果為true

>

嚴格大於

5 > 3 結果為true,5 > 5 結果為false

>=

大於或等於

5 >= 3 結果為true,5 >= 5 結果為true

==等於

1 == 1.0 == true 結果為true

!=不等於

is判斷兩個識別符號是否引用自乙個物件

x is y, 如果id(x) == id(y),即x也y的指向同乙個記憶體位址,則結果為1,否則結果為0

is not

判斷兩個識別符號是否引用自不同物件

x is not y, 如果id(x) != id(y),即x和y指向不同的記憶體位址,則結果為1,否則結果為0

說明:

a) 不同型別的物件進行比較,從來不會相等(不同的數字型別除外);

b) 當把<、<=、> 和 >=操作符在這幾種情況下會丟擲typeerror異常: (1) 用於複數和另外的內建數字型別進行比較時;(2) 比較的物件為不同型別,無法進行比較時;(3) 未定義的其他情況下;

c) 乙個類的不同例項通常是不相等的,除非該類定義了__eq__()方法;

d) 乙個類的例項不能相對於同一類或其他類的的其他例項進行排序,除非該類定義了足夠的方法__lt__(), __le__(), __gt__(), __ge__()。如果想要比較運算子的常規含義, __lt__()和__eq__()就足夠了;

e) is 和 is not操作符的行為是不能自定義的;另外,它們可以被應用到兩個不同型別的物件,不會已發異常。

f) 另外兩個具有相同句法優先順序的操作是 in 和 not in,它們支援序列、集合和對映型別的物件。

g) 比較運算的結果為布林值:true 或 false

在講解「布林運算」之前,我們先來說下python中的乙個特殊操作--「真」值測試。

python中的任何乙個物件都可以被測試「真」值。這裡說的「真」值測試可以這樣理解:python中的任何乙個物件都可以轉換為乙個布林值,而這個「真」值測試就是獲取乙個物件對應的布林值的過程。

python中只有下面這些值對應的布林值為false:

除此之外,所有的其它值對應的布林值都是true, 因此許多態別的物件永遠是true。

"真"值測試可以被用在 if或while條件中,也可以作為布林操作的運算元。

python中的邏輯運算稱為「布林運算(boolean operations)」,操作符包括:and(與)、or(或)、not(非)。

下面按照他們的優先順序公升序順序進行說明:

運算結果

x or y

如果x的truth值測試結果為false,那麼該操作的結果為y的值,否則為x的值

x and y

如果x的truth值測試結果為false, 那麼該操作的結果為x的值,否則為y的值

not x

如果x的truth值測試結果為false, 那麼該操作的結果為true,否則結果為false

說明:

a)or是乙個短路操作符,也就是說,只有第乙個引數的評估結果為false時,第二個引數才會被評估;

b) and也是乙個短路操作符,也就是說,只有第乙個引數的評估結果為true時,第二個引數才會被評估;

c) not操作符比非布林操作符優先順序低,因此,not a == b 被解釋為 not (a == b);如果寫成 a == not b會包語法錯誤。

按位運算是指把數字轉換為二進位制來進行計算,位運算子包括以下幾種:

假設:a = 60,對應的二進位制格式為 0011 1100

b = 13, 對應的二進位制格式為 0000 1101

運算子說明例項&

按位與:參與運算的兩個值,如果相應的二進位制位都為1,則該位結果為1,否則為0

a & b 對應的二進位制結果為 0000 1100,十進位制為12

豎槓按位或:參與運算的兩個值,只要對應的二進位制位由乙個為1時,該位結果就為1

a 豎槓 b 對應的二進位制結果為 0011 1101,十進位制為61

^按位異或:參與運算的兩個值,當對應的二進位制位不同時,該為結果為1,否則改為結果為0

a ^ b 對應的二進位制結果為 0011 0001, 十進位制為49

~按位取反:這個是單目運算子,只有乙個值參與運算,運算過程是對每個二進位制位取反,即把1變0,把0變1

~a 的二進位制結果為 1100 0011,十進位制數為-61

<<

左移運算子:運算數的各二進位制位全部左移若干位,高位丟棄,低位補0,結果相當於運算數乘以2的n次方,正負符號不發生改變

a << 2 的二進位制結果為 1111 0000,十進位制數為240

>>

右移運算子:運算數的各二進位制位全部右移若干位,結果相當於運算數除以2的n次方,正負符號不發生改變

a >> 2 的二進位制結果為 0000 1111,十進位制為15

python 運算子 Python運算子

python語言支援以下型別的運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 1 算術運算子 加號 減號 乘 除 取餘 乘方 整除 1 其中除號 要注意 在python2中,用作整除。解決方法有三 1 兩個相除的數中有乙個為實數。2 ...

python 運算子 python(運算子)

一 運算子 1.算數運算子 1 加 注意 字串與整數之間不能進行相加,需要通過str 或int 進行轉換資料型別 整數與整數相加 1 1 浮點數與浮點數相加 2.0 2.0 4.0 二進位制儲存精度誤差 1.1 1.3 2.4000000000000004 整數與浮點數相加 2 2.0 4.0字串之...

python運算子中 Python中的運算子

python中的運算子 數 算符 比較運算子 邏輯運算子 賦值運算子 1.數 算符 乘法 除法 取模 取餘 求餘數 整除 冪運算 1 和數學中的功能一模一樣,沒有區別 print 1 1 print 1 1 print 1 1 注意 的結果是浮點數。print 1 1 1.0 print 5 2 2...