一:學習內容
- 算術運算符:+(加)、-(減)、*(乘)、/(除)、%(取模)、**(求冪)、//(取整)
- 賦值運算符:=
- 復合運算符:+=、-=、*=、/=、%=、**=、//=
- 位運算符:&、\、^、~、<<、>>
- 關系運算符:==、!=、>、<、>=、<=
- 邏輯運算符:and、or、not
- 成員運算符:in、not in
- 身份運算符:is、is not
- 運算符優先級
二:算術運算符
表達式說明:由變量、常量和運算符組成的式子
1.算術運算符:+(加)、-(減)、*(乘)、/(除)、%(取模)、**(求冪)、//(取整)
2.算術運算表達式:功能:進行相關符號數學運算,不會改變變量的值;值:相關的數學運算結果
3.舉例
num1 = 5
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)
print(num1 ** num2) #pow(5,3)
print(num1 // num2)
三:賦值運算符
1.賦值運算符:=
2.賦值運算表達式:格式:變量 = 表達式;功能:計算等號右側"表達式"的值,並賦值給等號左側的變量;值:賦值結束后變量的值
3.舉例
num3 = 10
num4 = num3 + 20
四:復合運算符
1.復合運算符:+=、-=、*=、/=、%=、**=、//=
2.舉例
a = 1
b = 2
a += b #a = a + b
print("a1 =", a)
a -= b #a = a - b
print("a2 =", a)
a *= b #a = a * b
print("a3 =", a)
a /= b #a = a / b
print("a4 =", a)
a %= b #a = a % b
print("a5 =", a)
a **= b #a = a ** b
print("a6 =", a)
a //= b #a = a // b
print("a7 =", a)
五:位運算符
1.按位運算符是把數字看做二進制來進行計算
2.&按位與運算符,相應的位數都為1,則該位結果為1,否則為0
#5的二進制為101,7的二進制為111, 101&111=101即5
print(5 & 7)
3.\按位或運算符,相應的位數都為0,則該位結果為0,否則為1
#5的二進制為101,7的二進制為111, 101 | 111=111即7
print(5 | 7)
4.^按位異或運算符,相應的位數不同時,則該位結果為1,否則為0
#5的二進制為101,7的二進制為111, 101 ^ 111=010即2
print(5 ^ 7)
5.~按位取反運算符
#5的原碼和補碼:00000000 00000000 00000000 00000101
#取反后補碼: 11111111 11111111 11111111 11111010
#補碼的反碼為: 10000000 00000000 00000000 00000101
#反碼的原碼為: 10000000 00000000 00000000 00000110
#即-6
print(~5)
6.<< 左移動運算符:各二進制位全部左移動若干位,由<<右側的數字決定,高位丟棄,低位補0
#00000010
#00001000
print(2 << 2)
7.>> 右移動運算符:各二進制位全部右移動若干位,由>>右側的數字決定,低位丟棄,高位正數補0負數補1
#00001101
#00000011 正數的補碼即原碼,故為3
print(13 >> 2)
#10000000 00000000 00000000 00001101 -13原碼
#11111111 11111111 11111111 11110010 -13反碼
#11111111 11111111 11111111 11110011 -13補碼
#11111111 11111111 11111111 11111100 -13右移2位補碼
#10000000 00000000 00000000 00000011 -13右移2位反碼
#10000000 00000000 00000000 00000100 -13右移2位原碼,即為-4
print(-13 >> 2)
六:關系運算符
1.關系運算符:==、!=、>、<、>=、<=
2.關系運算表達式:表達式1 關系運算符 表達式2
3.功能:計算表達式1和表達式2的值
4.值:如果關系成立,整個關系運算表達式的值為真,否則為假
七:邏輯運算符
1.邏輯與運算表達式:表達式1 and 表達式2
值:如果表達式1和表達式2的值都為真,則值為真;如果表達式1或表達式2有一個是假,則值為假
舉例:
num1 = 0
num2 = 20
if num1 and num2:
print("真")
if num1 + 1 and num2 + 1:
print("真")
#短路原則,只要遇到一個假就不會在計算后面的表達式了
#表達式1 and 表達式2 and 表達式3 and ...
2.邏輯或運算表達式:表達式1 or 表達式2
值:如果表達式1和表達式2的值都為假,則值為假;如果表達式1或表達式2有一個是真,則值為真
舉例:
num3 = 0
num4 = 1
if num3 or num4:
print("真")
#短路原則,只要遇到一個真就不會在計算后面的表達式了
#表達式1 or 表達式2 or 表達式3 or ...
3.邏輯非運算表達式:not 表達式1
值:如果表達式1為假,則值為真;如果表達式1為真,則值為假
舉例:
if not 0:
print("真")
八:成員運算符
1.in 如果在指定的序列中找到值返回True,否則返回False
2.not in 如果在指定的序列中沒有找到值返回True,否則返回False
九:身份運算符
1.is 判斷兩個標識符是不是引用同一個對象
2.is not 判斷兩個標識符是不是引用不同的對象
十:運算符優先級
從上到下,優先級越來越小
**
~、+(正號)、-(負號)
*、/、%、//
+、-
>>、<<
&
^、|
<=、<、>、>=
==、!=
=、%=、+=、-=、//=
is、is not
in、not in
not、or、and