无法理解Python中输出的原因

时间:2011-02-03 18:32:31

标签: python

我刚开始学习Python。我遇到了以下代码

  

if 0:

  print "And now for something completely different..."
     

else:

  print "What's all this, then?"

我知道输出应该是What's all this, then?,但我似乎无法找到适当的解释。希望有人能让我理解。

感谢。

6 个答案:

答案 0 :(得分:5)

布尔上下文中

0False。同样适用于空字符串,列表等。

来自python docs

  

在布尔运算的上下文中,以及控制流语句使用表达式时,以下值被解释为false:False,None,所有类型的数字零,以及空字符串和容器(包括字符串,元组,列表,词典,集合和frozensets)。所有其他值都被解释为true。 (有关更改此方法的方法,请参阅__nonzero__()特殊方法。)

答案 1 :(得分:4)

在python(以及许多其他编程语言)中,零被解释为“false”

答案 2 :(得分:1)

0为假。布尔和逻辑上以及几乎所有其他情况。

你有什么困惑?

答案 3 :(得分:1)

在Python中,数字零始终被解释为false:

http://docs.python.org/reference/expressions.html#booleans

答案 4 :(得分:1)

在测试中使用时,几乎所有非0的都是True。任何数字(包括底片)都被视为True,但“None”为False。非空字符串为True,空字符为False。

在docs中查看Python的布尔或逻辑函数。另外,忘记你在学校基础数学中学到的一切,因为......

>>> 1 and 1
1

>>> 2 and 2
2

老实说,这是有道理的......

答案 5 :(得分:1)

如其他地方所述,与某些语言不同(但与其他语言不同),Python会将0解释为false,因此会激活else而不是then。要使then部分运行,您必须执行类似if 1:(或其他非零值)的操作。请不要在现实生活中这样编码。有关详情,请参阅if(以及another)和booleans上的Python文档。