Tur*_*ion 8 python operator-precedence operator-keyword
我最近偶然发现了这个表达:
True == False in (False,)
Run Code Online (Sandbox Code Playgroud)
它评估False,但我不明白为什么.
True == False是False和False in (False,)是True,所以(对我来说)两者都是合理的可能性
True == (False in (False,))
Run Code Online (Sandbox Code Playgroud)
和
(True == False) in (False,)
Run Code Online (Sandbox Code Playgroud)
True按照我的预期评估.这里出了什么问题?
Mec*_*ail 10
我相信这是Python的比较运算符链接的一个极端情况.它扩展到了
(True == False) and (False in (False,))
Run Code Online (Sandbox Code Playgroud)
评估为False.
此行为旨在匹配传统的数学符号(例如,x == y == z意味着所有三个都相等,或0 <= x < 10意义x在[0,10]范围内).但in也是一个比较运算符,给出了意想不到的行为.
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |