我对Python中的逻辑运算符得到的结果有点困惑.我是一名初学者,正在学习使用几本书,但他们并没有像我想的那样详细解释.
这是我自己的代码:
five = 5
two = 2
print five and two
>> 2
Run Code Online (Sandbox Code Playgroud)
它似乎只是输出两个变量.
five = 5
two = 2
zero = 0
print five and two and zero
Run Code Online (Sandbox Code Playgroud)
所以,我添加了另一个变量整数.然后我打印并得到以下输出:
>> 0
Run Code Online (Sandbox Code Playgroud)
Python在后台发生了什么?为什么输出不是7或5,2.
我试图从别人的项目中理解这段代码.如果您想要上下文,请访问:https://github.com/newsapps/beeswithmachineguns/blob/master/beeswithmachineguns/bees.py#L501
IS_PY2只是一个布尔变量,True如果Python主要版本是2.我知道非空字符串是True,但由于某种原因我不理解openmode被指定'w'或者'wt'而不是True或False.
openmode = IS_PY2 and 'w' or 'wt'
openkwargs = IS_PY2 and {} or {'encoding': 'utf-8', 'newline': ''}
Run Code Online (Sandbox Code Playgroud)
有人能解释一下结果吗?