"如果不是"python中的条件语句

kak*_*aka 3 python conditional if-statement

if not start: 
   new.next = None 
   return new
Run Code Online (Sandbox Code Playgroud)

什么"如果不是"是什么意思?这段代码何时执行?

是否与开始说= =无:然后做点什么?

Mar*_*ers 5

if是声明.not start是表达式,not是一个布尔运算符.

not返回True如果操作数(start在这里)被认为是假的.Python认为所有对象都是真的,除非它们是数字零,或者是空容器,或者是None对象或布尔False值.如果是真值则not返回.请参阅文档中的真值测试部分.Falsestart

所以,如果startNone,那么确实not start是真的.start也可以是0,或者是空列表,字符串,元组字典或集合.许多自定义类型也可以指定它们等于数字0或应该被视为空:

>>> not None
True
>>> not ''
True
>>> not {}
True
>>> not []
True
>>> not 0
True
Run Code Online (Sandbox Code Playgroud)

注意:因为None是一个单例(在Python进程中只有该对象的一个​​副本),所以你应该总是使用is或测试它is not.如果严格想测试达startNone,然后使用:

if start is None:
Run Code Online (Sandbox Code Playgroud)