在我尝试学习Python的过程中,我一直在从教程和我自己的教程中编写代码。我使用的是Python 3。
下面这段代码让我觉得:
>>>print(not 1 == 1 or 6 == 6 and 9 == 9)
True我已经运行了这段代码的不同部分。看起来OR运算符是在用一个双重True来否定自己。(不是True或True)输出True而不是False?or运算符不应该在第一个True时结束,而not运算符返回True为False吗?
发布于 2018-10-01 22:38:28
你应该调查一下operator precedence。
让我们检查这个表达式,并根据它们的优先级来处理每个运算符:
not 1 == 1 or 6 == 6 and 9 == 9首先,执行==操作符,因此我们得到:
not True or True and True然后,not运算符:
False or True and True然后,and运算符:
False or True然后,or操作符,生成您所看到的结果:
Truehttps://stackoverflow.com/questions/52593399
复制相似问题