在Python中评估布尔表达式

时间:2017-03-20 23:38:38

标签: python boolean

11 % 14 == 11 and ( 6 * 3 // 4 > 4 or 20 // 6 != 3)

当我在Python中键入它时,它告诉我该语句是错误的。

if  11 % 14 == 11 and ( 6 * 3 // 4 > 4 or 20 // 6 != 3):
    print("True")
else:
    print("False")

从我的理解11%14 == 11是真的,6 * 3 = 18 // 4是4所以这是真的,20 // 6将是3所以这也应该是真的吗?有人能向我解释这是假的吗?

3 个答案:

答案 0 :(得分:5)

你错过了两个关键项目:

6 * 3 // 4 > 4

是假:4不大于4.同样,

20 // 6 != 3

是假:3等于3.

下次,你可以进入翻译模式并使用分而治之的方法自行查找:

>>> 11 % 14 == 11 and ( 6 * 3 // 4 > 4 or 20 // 6 != 3)
False
>>> 11 % 14 == 11
True
>>> 6 * 3 // 4 > 4
False
>>> 20 // 6 != 3
False
>>> 6 * 3 // 4
4
>>> 20 // 6
3
>>> 

最后,请注意您的 if 语句是多余的。你可以简单地使用

print 11 % 14 == 11 and ( 6 * 3 // 4 > 4 or 20 // 6 != 3)

结果值是可打印的布尔常量。

答案 1 :(得分:3)

此处11 % 14 == 11True

接下来,6 * 3 // 4 > 4False

20 // 6 != 3False

因此,True and (False or False)将为False

答案 2 :(得分:1)

  1. 11%14 == 11和(6 * 3 // 4> 4或20 // 6!= 3)
  2. 11 == 11和(6 * 3 // 4> 4或20 // 6!= 3)
  3. True和(6 * 3 // 4> 4或20 // 6!= 3)
  4. True和(18 // 4> 4或20 // 6!= 3)
  5. True和(4> 4或20 // 6!= 3)
  6. True和(False或20 // 6!= 3)
  7. 真和(假或3!= 3)
  8. 真和(假或假)
  9. 真和(假)
    • 回答 - 错误