Joe*_*Joe 23 python syntax-error comparison-operators
我正在学习比较运算符,并且我正在玩 True 和 False 语句。我在 Python shell 中运行了以下代码:
not(5>7) == True
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,这返回了True。但是,我然后运行了以下代码:
True == not(5>7)
Run Code Online (Sandbox Code Playgroud)
并且出现了语法错误。这是为什么?如果第一行代码是有效的语法,那么第二行代码肯定也应该是有效的。我哪里错了?
(提供一点背景知识,我的理解是=在Python中仅用于变量赋值,而==与数学符号'='密切相关。)
ada*_*mgy 33
语法错误似乎是由not关键字引起的,而不是(双关语)相等运算符:
True == not (5 > 7)
# SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
True == (not (5 > 7))
# True
Run Code Online (Sandbox Code Playgroud)
可以在文档中找到解释:
not具有比非布尔运算符低的优先级,因此not a == b被解释为not (a == b), 并且a == not b是语法错误。
基本上,解释认为你比较True来not。
| 归档时间: |
|
| 查看次数: |
1322 次 |
| 最近记录: |