python的成員運算子、身份運算子
Python成員運算子
除了以上的一些運算子之外,Python還支援成員運算子,測試例項中包含了一系列的成員,包括字串,列表或元組。
運算子 | 描述 | 例項 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否則返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
以下例項演示了Python所有成員運算子的操作:
例項(Python 2.0+)
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 10 b = 20 list = [1, 2, 3, 4, 5 ]; if ( a in list ): print "1 - 變數 a 在給定的列表中 list 中" else: print "1 - 變數 a 不在給定的列表中 list 中" if ( b not in list ): print "2 - 變數 b 不在給定的列表中 list 中" else: print "2 - 變數 b 在給定的列表中 list 中" # 修改變數 a 的值 a = 2 if ( a in list ): print "3 - 變數 a 在給定的列表中 list 中" else: print "3 - 變數 a 不在給定的列表中 list 中"
以上例項輸出結果:
1 - 變數 a 不在給定的列表中 list 中 2 - 變數 b 不在給定的列表中 list 中 3 - 變數 a 在給定的列表中 list 中
Python身份運算子
身份運算子用於比較兩個物件的儲存單元
運算子 | 描述 | 例項 |
---|---|---|
is | is 是判斷兩個識別符號是不是引用自一個物件 | x is y, 類似 id(x) == id(y) , 如果引用的是同一個物件則返回 True,否則返回 False |
is not | is not 是判斷兩個識別符號是不是引用自不同物件 | x is not y , 類似 id(a) != id(b) |
注: id() 函式用於獲取物件記憶體地址。
以下例項演示了Python所有身份運算子的操作:
例項(Python 2.0+)
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 20 b = 20 if ( a is b ): print "1 - a 和 b 有相同的標識" else: print "1 - a 和 b 沒有相同的標識" if ( a is not b ): print "2 - a 和 b 沒有相同的標識" else: print "2 - a 和 b 有相同的標識" # 修改變數 b 的值 b = 30 if ( a is b ): print "3 - a 和 b 有相同的標識" else: print "3 - a 和 b 沒有相同的標識" if ( a is not b ): print "4 - a 和 b 沒有相同的標識" else: print "4 - a 和 b 有相同的標識"
以上例項輸出結果:
1 - a 和 b 有相同的標識 2 - a 和 b 有相同的標識 3 - a 和 b 沒有相同的標識 4 - a 和 b 沒有相同的標識
is 與 == 區別:
is 用於判斷兩個變數引用物件是否為同一個, == 用於判斷引用變數的值是否相等。
>>> a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True