我正在尝试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 []
{}
答案 0 :(得分:0)
这实际上在大多数教程中都有很好的描述;一般规则是:如果a and b
为真,则b
为a
,否则为a
;如果a or b
为真,则a
为a
,否则为b
。现在,False
,None
,()
,[]
,{}
,''
,0
和0.0
是都被视为虚假;几乎其他一切都是真的。
答案 1 :(得分:0)
我相信你指的是真相表在这里如何运作。请参阅以下链接:
https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3/Boolean_Expressions
希望它有所帮助。
答案 2 :(得分:0)
这是行动中的短路:
a and b
a
是False
- > a
立即返回a
为True
,b
为False
- > b
立即返回True
- >返回最后一个对象(b
)a or b
a
是True
- >立即返回a
a
为False
,b
为True
- >返回b
False
- >返回的最后一个对象(b
)现在,某些值被视为“假”,例如bool(value) == False
,例如:
False
本身0, 0.0, 0 + 0j
)[], tuple(), "", {}, set()
)None
__bool__
方法返回False
其他人被认为是“真实的”。
答案 3 :(得分:0)
我认为您希望and
和or
生成一个布尔值,即True
或False
。但他们没有。如果评估为or
,True
将返回第一个操作数;否则它将返回第二个操作数。如果评估为and
,False
将返回第一个操作数;否则它将返回第二个操作数。对于评估,以下计为False
:零整数和浮点数,空字符串以及空元组,列表和单词。其他任何内容都计为True
,包括例如字符串"0"
。