python中if not 1是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中if not 1是啥意思相关的知识,希望对你有一定的参考价值。

1为真,0为假,not 1 就是假,就是不执行if 下的语句了 参考技术A 你那个到底是数字1还是字母L?
if not xx就是“如果条件xx的结果不为真”
参考技术B 在这里1会被类型转换,bool(1)就是True,事实上所有非零的值在转化为布尔值的时候都是True。前面加个not就是False了。。
所以最后就相当于if False
参考技术C 有人无聊或者乱写,not 1永远相当于false,这个if是不会被执行的。 参考技术D not x if x is false, then True, else False本回答被提问者采纳

python中的if not

在python中 None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,即:

not None == not False == not ‘‘ == not 0 == not [] == not {} == not ()

 

if条件语句后面需要跟随bool类型的数据,即True或者False。然而,如果不是bool类型的数据,可以将其转换成bool类型的数据,转换的过程是隐式的。
在Python中,None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False。除此之外的其它对象都会被转化成True。
在命令if not 1中,1便会转换为bool类型的True。not是逻辑运算符非,not 1则恒为False。因此if语句if not 1之下的语句,永远不会执行。

 

也许你是想判断x是否为None,但是却把`x==[]`的情况也判断进来了,此种情况下将无法区分。

对于习惯于使用if not x这种写法的pythoner,必须清楚x等于None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。 

 

而对于`if x is not None`和`if not x is None`写法,很明显前者更清晰,而后者有可能使读者误解为`if (not x) is None`,因此推荐前者,同时这也是谷歌推荐的风格
 

结论:

`if x is not None`是最好的写法,清晰,不会出现错误,以后坚持使用这种写法。

使用if not x这种写法的前提是:必须清楚x等于None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判断没有影响才行。

以上是关于python中if not 1是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

python中if+not(x==y)的意思?

python中的“if var”是啥意思?

python中的if not 怎么用

`<>` 在 Python 中是啥意思?

python里的if __name__ == '__main__'是啥意思,简单点

这个 Python 代码是啥意思?