Python中的字符串比较:与==

发布于 2021-02-02 23:22:20

我注意到我正在编写的Python脚本表现得很松散,并将其追溯到无限循环,其中循环条件为while line is not ''。在调试器中运行它,结果发现那条线实际上是''。当我将其更改为!=’‘而不是时is not '',它工作正常。

另外,即使比较intBoolean值,通常还是最好还是默认使用'=='吗?我一直喜欢使用'is',因为我发现它在美学上更令人愉悦和pythonic(这就是我陷入这个陷阱的方式…),但是我想知道是否打算仅在你关心找到两个对象时才保留它?具有相同ID的对象。

关注者
0
被浏览
116
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    对于所有内置的Python对象(如字符串,列表,字典,函数等),如果xy,则x == y也为True

    不总是。NaN是一个反例。但通常,标识(is)表示相等(==)。反之则不成立:两个不同的对象可以具有相同的值。

    另外,即使比较intBoolean值,通常还是最好还是默认使用’==’吗?

    你可以使用==比较值,并在is比较标识时。

    比较整数(或通常不可变的类型)时,你几乎总是希望使用前者。有一个优化允许将小整数与进行比较is,但不要依赖它。

    对于布尔值,你根本不应该进行比较。代替:

    if x == True:
        # do something
    

    写:

    if x:
        # do something
    

    为了与进行比较None,is None优先于== None。

    我一直喜欢使用’is’,因为我发现它在美学上更令人愉悦和pythonic(这就是我陷入这个陷阱的方式…),但是我想知道是否打算仅在你关心找到两个对象时才保留它?具有相同ID的对象。

    是的,这就是它的用途。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看