“If not” condition statement in python
1 2 3
| if not start:
new.next = None
return new |
"如果不是"是什么意思?这个代码什么时候执行?
和说的一样吗如果start==none:那就做点什么?
- ifis the statement。not startis the expression,与not是安社。
- 尽管rnrneverdies this is a"的大问题,我不想听到它speaks is to the OP(例如有什么if notdoes?)而不是万能。它if about the之间的区分,if ==,和if is
if是声明。not start是表达式,not是布尔运算符。
如果操作数(此处为start)被认为是错误的,则not返回True。python认为所有对象都是真的,除非它们是数字零、空容器、None对象或boolean False值。如果start为真值,则not返回False。请参见文档中的真值测试部分。
所以如果start是None的话,那么not start是真的。start也可以是0或空列表、字符串、元组字典或集合。许多自定义类型还可以指定它们等于数字0或应视为空:
1 2 3 4 5 6 7 8 9 10
| >>> not None
True
>>> not ''
True
>>> not {}
True
>>> not []
True
>>> not 0
True |
注意:由于None是一个单例(在python进程中只有该对象的一个副本),所以应该始终使用is或is not测试它。如果您严格希望测试tat start是None,则使用:
当start为False、0、None、空表[]、空字典{}、空集时执行。