簡體   English   中英

數學運算順序

[英]Order of Operation Mathematical

編程新手,在做工作表時遇到了這個:

x = 1 / 2 + 3 // 3 + 4 ** 2

x是什么?

我讀到了關於指數的內容,你必須從右到左閱讀,我這樣做了,盡管答案應該是 17.5,但由於某種原因我一直得到 0。 任何關於為什么/如何我應該得到 17.5 以及我應該解決它的順序的幫助將不勝感激。 謝謝。

使用Python,結果是17.5

在此處輸入圖片說明

您可以在 python (Python Operator Precedence) 中檢查數學運算符的順序以獲取更多信息

(1 / 2) + (3 // 3) + (4 ** 2) = 0.5 + 1 + 16

參考: https : //www.mathcs.emory.edu/~valerie/courses/fall10/155/resources/op_precedence.html

要確定此表達式的優先順序,請記住以下規則(非詳盡無遺):

  • 評估從左到右
  • 乘法/除法比加法/減法具有更高的優先級(例如1 + 2 / 3被評估為1 + (2 / 3)
  • 指數/冪比乘法和除法具有更高的優先級(例如1 / 2**4被評估為1 / (2**4)

這些規則共同向我們展示了這個表達式:

x = 1 / 2 + 3 // 3 + 4 ** 2

將被評估為:

x = (1 / 2) + (3 // 3) + (4 ** 2)

因此,x = 0.5 + 1 + 16 = 17.5。

運算符優先級在 Python 文檔中定義:

https://docs.python.org/3/reference/expressions.html#operator-precedence

因此, **具有最高優先級,然后是/// ,然后是+

暫無
暫無

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

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