1. 程式人生 > 其它 >Acrobat Pro DC 2022 專業PDF編輯軟體

Acrobat Pro DC 2022 專業PDF編輯軟體

3.3 Python運算子

運算子用於執行程式程式碼運算,根據運算元一般分為一元運算子、二元運算子。例如:2+3,其運算元是23,而運算子則是+。在Python中運算子可以分為以下幾種型別:算術運算子、比較(關係)運算子、賦值運算子、邏輯運算子、位運算子、成員運算子、身份運算子。

3.3.1 算術運算子

+-*:分別對應數學中的加減乘,在此不做過多的贅述。
/:除法,注意結果返回的是浮點數。4 / 2 → 2.0
%:取模,返回除法的餘數。7 % 3 → 1
**:冪運算。4 ** 2 → 16
//:取整除,也叫地板除,返回商的整數部分(向下取整)。15 // 6 → 2
1、算術運算子全是對數值型別資料進行操作的運算子
2、算術運算子全是二元運算子
3、返回的型別為數值型別


算術轉換規則
1、如果任一運算元為複數,另一運算元會被轉換為複數;
2、否則,如果任一運算元為浮點數,另一運算元會被轉換為浮點數;
3、否則,兩者應該都為整數,不需要進行轉換。

3.3.2 比較(關係)運算子

==!=><>=<=:分別對應等於、不等於、大於、小於、大於或等於、小於或等於。
1、比較(關係)運算子可以運算元值型別,也可以操作物件。
2、比較(關係)運算子全是二元運算子。
3、返回的結果為布林型別(非真即假)

3.3.3 賦值運算子

=:最常用的賦值運算子。a = 5 → 將5賦值給a。
算術運算子 + =:先進行算術運算之後再進行賦值。例如:a += 3

等價於:a = a + 3。其它的類似。
=::海象運算子。Python3.8之後新增的一種賦值運算子,可以直接進行賦值後再形成表示式,從而節省程式碼的編寫量。
↓未使用海象運算子

age = 20
if age > 18:
    print("已經成年了")

↓使用海象運算子

if(age:= 20) > 18:
    print("已經成年了")

↓未使用海象運算子

file = open("demo.txt", "r")
while True:
    line = file.readline()
    if not line:
        break
    print(line.strip())

↓使用海象運算子

file = open("demo.txt", "r")
while (line := file.readline()):
    print(line.strip())

↓未使用海象運算子

while True:
   p = input("Enter the password: ")
   if p == "youpassword":
      break

↓使用海象運算子

while(p := input("Enter the password: ")) != "youpassword":
   continue

1、賦值運算子可以運算元值型別,也可以操作物件。
2、賦值運算子全是二元運算子。

3.3.4 邏輯運算子

and:邏輯與,若2個運算元都為真則結果為True,否則為False
or:邏輯或,若2個運算元都為假則結果為False,否則為True
not:邏輯非,取反。若運算元為True,則結果為False。反之亦然。
1、運算元必須為布林型別或能隱式轉換成布林型別
2、andor是兩元運算子,而not是一元運算子。
3、and其實短路邏輯,就是先判斷第1個引數的布林型別,如果是False,那麼整個表示式就是False,而不必去判斷第2個引數的布林型別。如果為True,那麼整個表示式的最後結果就是第2個引數的布林型別。這個稱之為短路邏輯。or也同理。
4、優先順序:not > and > or
5、返回的型別為布林型別

3.3.5 位運算子

位運算子會將數字轉換成二進位制並進行運算。位運算子將兩個二進位制數位從高到低依次進行運算。為了方便講解,下面的變數a 為 60,b 為 13,a和b的二進位制格式為:
a = 0011 1100
b = 0000 1101
&:按位與,如果參與運算的兩個2進位制位都為1,則結果為1,否則為0。
a & b → 0000 1100
|:按位或,如果參與運算的兩個2進位制位有一個為1,則結果為1。否則為0。
a & b → 0011 1101
^:按位異,如果參與運算的兩個2進位制位相異時,結果為1。否則為0。
a ^ b → 0011 0001
~:按位取反,對資料的每個二進位制位取反,即把1變為0,把0變為1。
~a = 1100 0011
<<:左移動,運算數的各二進位全部左移若干位,由 << 右邊的數字指定了移動的位數,高位丟棄,低位補0。
a << 2 → 1111 0000
>>:右移動,運算數的各二進位全部右移若干位,由 >> 右邊的數字指定了移動的位數,低位丟棄,高位補0。
a >> 2 → 0000 1111
1、運算元必須為整數型別
2、&|^是兩元運算子,而~<<>>是一元運算子

3.3.6 成員運算子

成員運算子用來判斷某個物件是不是某個序列中的成員。
in:物件在序列中則返回True,否則返回Flase
not in:物件不在序列中則返回True,否則返回False
1、innot in都是二元運算子。
2、返回值為布林型別。

3.3.7 身份運算子

身份運算子用於對物件執行比較操作,即這些運算子檢查兩個運算元是否引用相同的物件(具有相同的儲存位置)。
is:判斷兩個識別符號是不是引用自同一個物件。x is y:類似id(x) == id(y),如果引用的是同一個物件則返回True,否則返回False
is not:判斷兩個識別符號是不是引用自不同物件。x is not y:類似id(a) != id(b)。如果引用的不是同一個物件則返回結果True,否則返回False
1、isis not都是二元運算子
2、返回的結果為布林型別。

3.3.8 運算子優先順序

以下列出了從最高到最低優先順序的所有運算子:

運算子 描述
** 指數(最高優先順序)
~、+、- 按位翻轉、正號、負號
*、/、%、// 乘、除、取模、取整除
+、- 加、減
>>、<< 按位右移、按位左移
& 按位與
|、^ 按位或、按位異或
<=、<、>、>= 比較運算子
<>、==、!= 等於運算子
=、%=、/=、//=、-=、+=、*=、**= 賦值運算子
is、is not 身份運算子
in、not in 成員運算子
not、and、or 邏輯運算子

對於某些不清楚優先順序的運算子,可以通過括號來改變執行運算順序。


練習
1、瞭解Python運算子
2、將教程中所有的運算子示例手敲一遍並熟悉