Python作為目前最流行的編程語言之一,其運算符優先級的規則是編寫程序時必須考慮的問題。本文旨在為讀者介紹Python運算符優先級的相關知識。
Python運算符優先級順序
Python中各種運算符的優先級是不同的,也就是說在一個表達式中,先進行哪個運算符,後進行哪個運算符,會對表達式的值產生不同的影響。
以下是Python運算符的優先級順序(按從高到低的順序排列):
- 括號
- 冪運算 **
- 正負號 +x, -x
- 乘、除、取模 */%
- 加、減 +-
- 位運算符 &、|、^ &|
- 比較運算符 <<、>;>、>、<=、>=、<>、==、!= in、not in、is、not is
- 布爾運算符not
- 布爾運算符and
- 布爾運算符or
- 條件表達式 x if C else y
Python運算符優先級最高
在Python運算符優先級中,最高優先級的是括號。如果使用括號來改變運算的順序,可以使表達式的含義更加清晰明了,如下面的代碼示例所示:
a = 2 b = 3 c = 4 result = (a + b) * c print(result) # 輸出結果為 20
以上代碼中,使用括號改變了運算的順序,先進行了加法運算,再進行乘法運算,計算結果正確。
Python運算符優先級口訣
為了方便記憶,我們可以使用一些口訣來記憶Python運算符的優先級順序。
一句簡單的口訣是:“乘法除法優先級高,加減次之不怕跑;比較邏輯最後算,括號優先來管道。”
也可以使用以下比較詳細的口訣:
乘除兩個皇后, 加減四個士兵, 比較和邏輯的兵馬不停, 數字只要有括號它就能出其不意。
Python運算符的優先級和結合性
在Python運算符優先級中,每個運算符的結合性不同。
結合性表示同級運算符計算的順序,有左結合、右結合和非結合性:
- 左結合:從左向右計算,如加減乘除
- 右結合:從右向左計算,如冪運算
- 非結合性:不可以連續使用,如比較運算符
例如,冪運算符在Python中的結合性是右結合,因此在兩個冪運算符在表達式中出現時,先計算右邊的冪運算符。
a = 2 b = 3 c = 4 result = a ** b ** c print(result) # 輸出結果為 2417851639229258349412352
以上代碼中,先計算 b ** c 的結果,再計算 a 的 b 的 c 次方的結果。
Python運算符優先級表
以下是Python運算符優先級的詳細表格:
運算符 | 描述 | 示例 | 結果 |
---|---|---|---|
** | 冪 | 2 ** 3 | 8 |
+ | 加 | 2 + 3 | 5 |
– | 減 | 3 – 2 | 1 |
* | 乘 | 2 * 3 | 6 |
/ | 除 | 3 / 2 | 1.5 |
// | 整除 | 3 // 2 | 1 |
% | 取模 | 3 % 2 | 1 |
<< | 左移位 | 2 << 3 | 16 |
>> | 右移位 | 16 >> 3 | 2 |
& | 按位與 | 6 & 2 | 2 |
| | 按位或 | 6 | 2 | 6 |
^ | 按位異或 | 6 ^ 2 | 4 |
< | 小於 | 2 < 3 | True |
> | 大於 | 2 > 3 | False |
<= | 小於等於 | 2 <= 3 | True |
>= | 大於等於 | 2 >= 3 | False |
== | 等於 | 2 == 3 | False |
!= | 不等於 | 2 != 3 | True |
not | 布爾非 | not True | False |
and | 布爾與 | True and False | False |
or | 布爾或 | True or False | True |
if-else | 條件表達式 | x if y else z | x 或 z(取決於 y 的值) |
Python運算符優先級順序口訣
如前所述,Python運算符優先級和結合性的規則較為複雜,因此我們可以使用一些口訣來輔助記憶:
括號高,指數次之, 乘除然後加減, 比較運算不要忘, 邏輯運算最後算, 三目運算看得清。
總結
在Python中,運算符優先級的規則是編寫程序時必須考慮的問題。如果不遵守優先級順序,可能會導致表達式的值與預期不符。通過本文的介紹,讀者可以清楚地了解Python各種運算符的優先級順序、口訣、結合性等相關知識。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/231693.html