理解和/或在Python中的操作

时间:2017-06-21 07:25:04

标签: python

我正在尝试Python中的一些操作,但我不理解它的基本概念。我尝试了各种组合,这对你来说可能有点困难,但我的目标是如何在Python内部工作。请找到下面的代码:

>>> 2 or 3
2
>>> 3 or 2
3
>>> 3 or 3
3
>>> 3 or -3
3
>>> -3 or 3
-3
>>> 0 or 3
3
>>> 0 or -9
-9
>>> 3 and 4
4
>>> 3 and 6
6

>>> 0 or None
>>> 0 and None
0
>>> None and 0
>>> None or 0
0


>>> 5 and 2
2
>>> -3 and 6
6
>>> 3 and -6
-6
>>> 3 and 0
0
>>> 0 and 0
0
>>> 0 and 0.0
0
>>> 0.0 and 0
0.0
>>> 0.0 or 0
0
>>> 0 or 0.0
0.0
>>> [] or 3
3
>>> 3 or []
3
>>> 0 or []
[]
>>> [] or 0
0
>>> [] and 3
[]
>>> 3 and []
[]
>>> [] or {}
{}
>>> [] and {}
[]
>>> [] and {}
[]
>>> {} or []
[]
>>> {} and []
{}

4 个答案:

答案 0 :(得分:0)

这实际上在大多数教程中都有很好的描述;一般规则是:如果a and b为真,则ba,否则为a;如果a or b为真,则aa,否则为b。现在,FalseNone()[]{}''00.0是都被视为虚假;几乎其他一切都是真的。

答案 1 :(得分:0)

我相信你指的是真相表在这里如何运作。请参阅以下链接:

https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3/Boolean_Expressions

希望它有所帮助。

答案 2 :(得分:0)

这是行动中的短路:

  • a and b
    • aFalse - > a立即返回
    • aTruebFalse - > b立即返回
    • True - >返回最后一个对象(b
  • a or b
    • aTrue - >立即返回a
    • aFalsebTrue - >返回b
    • False - >返回的最后一个对象(b

现在,某些值被视为“假”,例如bool(value) == False,例如:

  • False本身
  • 数字零(0, 0.0, 0 + 0j
  • 空容器([], tuple(), "", {}, set()
  • None
  • __bool__方法返回False
  • 的任何其他内容

其他人被认为是“真实的”。

答案 3 :(得分:0)

我认为您希望andor生成一个布尔值,即TrueFalse。但他们没有。如果评估为orTrue将返回第一个操作数;否则它将返回第二个操作数。如果评估为andFalse将返回第一个操作数;否则它将返回第二个操作数。对于评估,以下计为False:零整数和浮点数,空字符串以及空元组,列表和单词。其他任何内容都计为True,包括例如字符串"0"