[英]Python Mathematical Order of Operation
請有人向我解釋為什么表達式 2 + 4 / 2 * 3 的計算結果為 8.0 而不是 2.66?
我認為乘法是在除法之前執行的,但是在這種情況下,除法運算似乎是在乘法之前執行的。
因為它被評估為:
2 + ((4 / 2) * 3)
因為*
和/
具有比+
更高的優先級 ,並且當運算符具有相同的優先級時它從左到右。
引用文檔:
下表總結了Python中的運算符優先級,從最低優先級(最小綁定)到最高優先級(大多數綁定)。 同一個框中的運算符具有相同的優先級。 除非明確給出語法,否則運算符是二進制的。 同一個框組中的操作符從左到右(取冪除外,從右到左分組)。
運營商說明
- [...]
+
,-
加法和減法*
,@
,/
,//
,%
乘法,矩陣乘法,除法,分區,余數- [...]
是的,首先計算除法和乘法,但是在除法之前不執行乘法,反之亦然。 所以: 2 + 4/2 * 3 = 2+2*3 = 2+6 = 8
1.()
2.%,/,*
3. +, -
Python賦予乘法和除法相同的優先級。
通常,從左到右依次執行相同的優先級操作。
python 操作的順序遵循相同的規則。 您可以使用助記符“請原諒我親愛的薩莉姨媽”來記住它。 或執行數學時PEMDAS。 PEMDAS 代表括號、冪、乘、除、加和減。 但是,乘法和除法可以具有相同的優先級,但從左到右的順序不同。 加法和減法的行為也相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.