我最近遇到了一个if-else条件语句的例子,无法理解其输出背后的基本原理。以下是陈述:
if 0:
1
else:
2
输出:2
我在0的位置尝试了不同的整数,每次都收到1。这是因为if条件中的零表示False吗?但是为什么除了1以外的整数仍然满足if条件?
谢谢!
编辑:感谢您的所有答案。我现在明白了除了0之外的任何整数,如果'默认情况下,语句将使语句为True,在这种情况下输出为1。
答案 0 :(得分:2)
Python将始终尝试确定布尔上下文中使用的给定值的“真实性”。在Python中,任何数值0(或0.0)都被视为false,字符串,字典,列表或其他可迭代(或其他可报告其长度的类)如果为空或长度为0则为false。另外,{{ 1}}和布尔None
被视为错误。
其他值被认为是真实的。
答案 1 :(得分:0)
在Python中,bool
是int
的子类型。 False的值为0,而其他非零整数的子类型bool
的值为True
。
要亲自查看此内容,请尝试以下操作:False == 0
要查看int的子类型,请尝试:int.__subclasses__()
答案 2 :(得分:0)
1被视为True
而0为False
,就像二进制一样。
在条件语句中,任何非零数值都将被计算为True。
bool类型只是Python中int的子类型,1 == True
和0 == False
。