簡體   English   中英

Python數學運算順序

[英]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基本操作遵循BODMAS規則,並且由於除法的優先級高於乘法。所以它是這樣的:2+(4/2)* 3
  • 現在如果你想得到2.66作為你的答案它必須像2 + 4 /(2 * 3)

python 操作的順序遵循相同的規則。 您可以使用助記符“請原諒我親愛的薩莉姨媽”來記住它 或執行數學時PEMDAS。 PEMDAS 代表括號、冪、乘、除、加和減。 但是,乘法和除法可以具有相同的優先級,但從左到右的順序不同。 加法和減法的行為也相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM