python 判断常量和None的等值/不等 是用==/!= 还是 is/is not

2023-12-19 01:19:05

is 是检查两个对象是否指向同一块内存空间,而 == 是检查他们的值是否相等?

在一些判断是否相等/不相同的情况下,他们的使用有区别的

以下是 flake8给出的检测提示:

?use ==/!= to compare constant literals (str, bytes, int, float, tuple)

?comparison to None should be 'if cond is None:'

如下例子代码:

a=8
if(a is not 9):
    print("a not 9")

会有报错提示:

SyntaxWarning: "is not" with a literal. Did you mean "!="?
? if(a is not 9):
a not 9

程序能够出结果,但是会有警示。if里is not换成!= 报警消失

?对于字符型,数字型、tuple型字面量常量形式的比较,要使用==/!=

对于None的比较,建议使用is/is not

a='ss'

if(a is None):
    print("a is None")
if(a is not None):
    print("a is not None")

?a is not None

另外对于list 与常量相比值是否相等也是 ==/!=,is/is not 会另外查找id是否也相等

b=[1,2]
if(b==[1,2]):
    print("== 1,2元素")

if(b is [1,2]):
    print("is 1,2元素")

打印:

== 1,2元素

文章来源:https://blog.csdn.net/yuxuan89814/article/details/135066400
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。