你能告诉我为什么括号会影响传递给print语句的布尔值的输出吗?
例:
print(True and False) or (True or False)
# False or True
# Python 2.7 >>> True
# Python 3.6 >>> False
但是当我使用括号时:
print((True and False) or (True or False))
# False or True
# Python 2.7 >>> True
# Python 3.6 >>> True
Python 3中的解释器是否只看到第一部分(第一个括号内的部分)?如果是这样,为什么它不会为该行的其余部分抛出错误?
其他例子:
print(True and True) and (True and False)
# True and False
# Python 2.7 >>> False
# Python 3.6 >>> True
print((True and True) and (True and False))
# True and False
# Python 2.7 >>> False
# Python 3.6 >>> False
print(True and True) and not (False or True)
# True and not True
# Python 2.7 >>> False
# Python