python True,False 如何判断,if 中True,False有什么区别

在python 有有个神奇的东西,什么样的值可以直接用True 和False 来判断,在if语句中和直接判断有什么区别。

>>> a=2
>>> a is True
False
>>> 2 is True
False
>>> 2 if 2 else 3
2

可以看到,直接用2 isTrue 返回的是False,而在if语句中,则返回的是True.

在python 中,True只和1等价,其他值均为False。

>>> 1 is True
False
>>> 1==True
>>> 3==True
False
>>> [2]==True

但在if 中其实是用bool判断的,在python里面只要是非空或非None,或非0的都为True.

>>> bool([2])
True
>>> bool(0)
False
>>> bool(2)
True
>>> bool(None)
False
>>> bool([])
False

reference:
https://stackoverflow.com/questions/7134984/why-does-1-true-but-2-true-in-python

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。