Python对If-Else条件语句的评估

时间:2016-12-05 03:39:50

标签: python python-3.x if-statement

我最近遇到了一个if-else条件语句的例子,无法理解其输出背后的基本原理。以下是陈述:

if 0:
    1
else:
    2

输出:2

我在0的位置尝试了不同的整数,每次都收到1。这是因为if条件中的零表示False吗?但是为什么除了1以外的整数仍然满足if条件?

谢谢!

编辑:感谢您的所有答案。我现在明白了除了0之外的任何整数,如果'默认情况下,语句将使语句为True,在这种情况下输出为1。

3 个答案:

答案 0 :(得分:2)

Python将始终尝试确定布尔上下文中使用的给定值的“真实性”。在Python中,任何数值0(或0.0)都被视为false,字符串,字典,列表或其他可迭代(或其他可报告其长度的类)如果为空或长度为0则为false。另外,{{ 1}}和布尔None被视为错误。

其他值被认为是真实的。

更多详情:https://docs.python.org/2.4/lib/truth.html

答案 1 :(得分:0)

在Python中,boolint的子类型。 False的值为0,而其他非零整数的子类型bool的值为True

要亲自查看此内容,请尝试以下操作:False == 0

要查看int的子类型,请尝试:int.__subclasses__()

答案 2 :(得分:0)

1被视为True而0为False,就像二进制一样。

在条件语句中,任何非零数值都将被计算为True。

bool类型只是Python中int的子类型,1 == True0 == False