[英]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.