首頁>Program>source

運算符優先順序的Python文件指出:

Operators in the same box group left to right (except for comparisons, including tests, which all have the same precedence and chain from left to right — see sectionComparisons...)

這是什麼意思? 具體来說:

  1. "同一框中的運算符从左到右分組(除 比较...)"-比较組不是从左到右吗?

  2. 如果比较不是not从左到右分組,那麼它们將做什麼呢? 他们是"连鎖"而不是"团體"吗?

  3. 如果比较"鏈"而不是"組",那麼"鏈"和"分組"之間有什麼區別?

  4. 將有什麼示例来證明比较運算符从左到右而不是从右到左鏈接?

最新回復
  • 5月前
    1 #

    分組(這是非比较運算符的作用):

    a + b + c   means   (a + b) + c
    

    连鎖(這是比较運算符的作用):

    a < b < c   means   (a < b) and (b < c)
    

    从左到右分組(這是事物分組的方式):

    5 - 2 - 1   means   (5 - 2) - 1 == 2
    

    与从右到左分組(這会产生不同的結果)相反:

    5 - (2 - 1) == 4
    

    (編輯)

    连鎖是从左到右,所以在 a < b < c ,表示 a < bb < c之前进行評估 ,如果是 a < b 是假的, b < c 未評估。

    (2 < 1 < f()) 賦予值 False 無需呼叫 f函式 ,因為 2 < 1 計算結果為false,因此不需要執行第二次比较.

    f() > 1 > g()f() 為了評估第一个比较,並根据結果,它可能需要評估第二个條件,也可能不需要,這需要呼叫 g()

    https://en.wikipedia.org/wiki/短路評估

相似問題

  • ftp:来自PHP的SFTP
  • c#:RequestUrlReferrer為空?