除了比較運算符,while和if語句中還可以使用更多的操作符。
使用“in”或者“not in”可以檢驗一個元素是否在一個序列中。
語句“is”或者“is not”用來判斷兩個對象是否是同一個對象。這個操作符適用於可變的對象,他們的優先級比算數操作符低。
'''可變的對象'''
a=[1,2]
b=a
a1=[1,2]
b1=[1,2]
print("a=b?",a is b) # 比較的是引用!
print("a1=b1?",a1 is b1)# 比較的是引用!
''' 不可變的對象'''
a=(1,2)
b=a
a1=(1,2)
b1=(1,2)
print("a=b?",a is b) # 比較的是引用!
print("a1=b1?",a1 is b1)# 比較的是引用!
a=1
b=a
a1=1
b1=1
print("a=b?",a is b) # 比較的是值!
print("a1=b1?",a1 is b1)# 比較的是值!
a='1'
b=a
a1='1'
b1='1'
print("a=b?",a is b) # 比較的是值!
print("a1=b1?",a1 is b1)# 比較的是值!
比較操作可以被鏈接。 a < b == c表示a小於b並且b等於c。
比較操作符可以被布爾操作符鏈接。如“and”或者“or”。“not”這個布爾操作符代表否。
和java一樣or以及and也有短路功能。
可以將or的結果賦值個一個變量,功能好強大啊。這樣可控制性就差了,要學好語法啊。
>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'
>>> non_null = string1 or string2 or string3
>>> non_null
'Trondheim'
在python中在表達式中賦值是不對的。
python代碼:
b=3
if a=b>0:
print(a) # 錯誤
java代碼:
public static void main(String[] args) {
int b = 1;
int a = 0;
if((a = b)>0){// 正確
System.out.println(a);
}
}