1. 程式人生 > >python基礎之運算子

python基礎之運算子

  • Python身份運算子

    運算子 描述 例項
    is is 是判斷兩個識別符號是不是引用自一個物件 x is y, 類似 id(x) == id(y) , 如果引用的是同一個物件則返回 True,否則返回 False
    is not is not 是判斷兩個識別符號是不是引用自不同物件 x is not y , 類似 id(a) != id(b)。如果引用的不是同一個物件則返回結果 True,否則返回 False。

    is 與 == 區別: is 用於判斷兩個變數引用物件是否為同一個, == 用於判斷引用變數的值是否相等。

    a=20
    b=20
    c=30
    print(a is b) #True
    print(id(a)==id(b)) #True
    print(b is c) #False
    

    python中會為每個出現的物件分配記憶體,哪怕他們的值完全相等(注意是相等不是相同)。如執行a=2.0,b=2.0這兩個語句時會先後為2.0這個Float型別物件分配記憶體,然後將a與b分別指向這兩個物件。所以a與b指向的不是同一物件:

    但是為了提高記憶體利用效率對於一些簡單的物件,如一些數值較小的int物件,python採取重用物件記憶體的辦法,如指向a=2,b=2時,由於2作為簡單的int型別且數值小,python不會兩次為其分配記憶體,而是隻分配一次,然後將a與b同時指向已分配的物件:

    Python 中沒有 ++ 或 – 自運算子