成員運算符
Python里有成員運算符,可以判斷一個元素是否在某一個序列中。比如可以判斷一個字符是否屬於這個字符串,可以判斷某個對象是否在這個列表中等等。
Python中的成員操作符的使用語法是:
obj [not] in sequence
這個操作符返回值是True或者False。
看個代碼實例吧:
身份運算符
Python支持對象本身的比較,比較的語法是:
obj1 is [not] obj2
身份運算符是用來比較2個對象是否是同一個對象,而之前比較運算符中的 == 則是用來比較2個對象的值是否相等。
這里需要講下身份運算符是怎么判斷的。
Python中的變量有3個屬性:name、id、value。
name可以理解為變量名,id可以聯合內存地址來理解,value就是變量的值。is運算符則是通過這個id來進行判斷的,id一樣就返回true,否則返回false。
比如:
a = [1, 2, 3] b = [1, 2, 3] print( a == b ) print( a is b )
這段代碼輸出的結果是true和false,因為變量a和變量b的value是一樣的,所以用==運算符比較的變量的value,所以返回true。但是用is的時候,比較的是id,a和b的id不一樣(可以使用id(a)來查看a的id),所以返回false。
但是並不是所有的情況都是這樣的,對於小的整數,Python緩存了-5到257之間的所有整數,共262個。所以下面的代碼:
a = 100 b = 100 print( a is b ) c = 500 d = 500 print( c is d )
返回結果一個是true,一個是false,false的情況和上面一樣,true的結果是因為Python對小的整數做了處理,還有字符串的情況也是一樣的,使用is都會返回相等。
更多學習內容,就在碼芽網http://www.mayacoder.com/lesson/index