1-4、邏輯運算符
邏輯運算符用于對bool類型變量進行運算,其結(jié)果也是bool類型。
以下假設(shè)變量:a=4,b=2:
運算符 | 名稱 | 舉例 | 描述 | 說明 |
not | 邏輯非 | not a | a為True時,返回值為False;a為False時,返回值為True。 | 返回值False。 |
and | 邏輯與 | a and b | a、b全為True時,返回值為True;否則返回值為False。 | 返回值True。 |
or | 邏輯或 | a or b | a、b全為False時,返回值為False;否則返回值為True。 | 返回值True。 |
舉例:
a = 10
b = 20
if a and b :
print "1 - 變量 a 和 b 都為 true"
else:
print "1 - 變量 a 和 b 有一個不為 true"
if a or b :
print "2 - 變量 a 和 b 都為 true,或其中一個變量為 true"
else:
print "2 - 變量 a 和 b 都不為 true"
a = 0 # 修改變量 a 的值
if a and b :
print "3 - 變量 a 和 b 都為 true"
else:
print "3 - 變量 a 和 b 有一個不為 true"
if a or b :
print "4 - 變量 a 和 b 都為 true,或其中一個變量為 true"
else:
print "4 - 變量 a 和 b 都不為 true"
if not( a and b ):
print "5 - 變量 a 和 b 都為 false,或其中一個變量為 false"
else:
print "5 - 變量 a 和 b 都為 true"
運行結(jié)果:
1 - 變量 a 和 b 都為 true
2 - 變量 a 和 b 都為 true,或其中一個變量為 true
3 - 變量 a 和 b 有一個不為 true
4 - 變量 a 和 b 都為 true,或其中一個變量為 true
5 - 變量 a 和 b 都為 false,或其中一個變量為 false
1-5、位運算符
位運算,是以二進位為單位進行位運算的,操作數(shù)和結(jié)果都是整數(shù)類型的數(shù)據(jù)。
以下假設(shè)變量:a=60,b=13:
運算符 | 名稱 | 舉例 | 描述 | 說明 |
& | 按位與運算符 | a & b | 參與運算的兩個值,如果兩個相應(yīng)位都為1,則該位的結(jié)果為1,否則為0。 | 返回值12。 |
| | 按位或運算符 | a | b | 只要對應(yīng)的2個二進位有一個為1時,結(jié)果位就為1。 | 返回值61。 |
^ | 按位異或運算符 | a ^ b | 當兩對應(yīng)的二進位相異時,結(jié)果為1 | 返回值49。 |
~ | 按位取反運算符 | a ~ b | 對數(shù)據(jù)的每個二進制位取反,即把1變?yōu)?,把0變?yōu)?。 | 返回值-61。 |
<< | 左移動運算符 | a << 2 | 運算數(shù)的各二進位全部左移若干位,由"<<"右邊的數(shù)字指定了移動的位數(shù),高位丟棄,低位補0。 | 返回值240。 |
>> | 右移動運算符 | a >> 2 | 把">>"左邊的運算數(shù)的各二進位全部右移若干位,">>"右邊的數(shù)字指定了移動的位數(shù)。 | 返回值15。 |
舉例:
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "1 - c 的值為:", c
c = a | b; # 61 = 0011 1101
print "2 - c 的值為:", c
c = a ^ b; # 49 = 0011 0001
print "3 - c 的值為:", c
c = ~a; # -61 = 1100 0011
print "4 - c 的值為:", c
c = a << 2; # 240 = 1111 0000
print "5 - c 的值為:", c
c = a >> 2; # 15 = 0000 1111
print "6 - c 的值為:", c
運行結(jié)果:
1 - c 的值為:12
2 - c 的值為:61
3 - c 的值為:49
4 - c 的值為:-61
5 - c 的值為:240
6 - c 的值為:15
1-6、成員運算符
成員運算符用于運算成員是否在指定序列中,包含有字符串,列表或元組,其結(jié)果為Bool類型。
以下假設(shè)變量:a=4,b=2,list=[2,4,8,16]:
運算符 | 名稱 | 舉例 | 描述 | 說明 |
in | 成員內(nèi) | a in list | 如果在指定的序列中找到值時,返回值為True,否則返回值為False。 | 返回值True。 |
not in | 成員外 | b not in list | 如果在指定的序列中沒有找到值時,返回值為True,否則返回值為False。 | 返回值False。 |
舉例:
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 = 2 # 修改變量 a 的值
if ( a in list ):
print "3 - 變量 a 在給定的列表中 list 中"
else:
print "3 - 變量 a 不在給定的列表中 list 中"
運行結(jié)果:
1 - 變量 a 不在給定的列表中 list 中
2 - 變量 b 不在給定的列表中 list 中
3 - 變量 a 在給定的列表中 list 中
1-7、身份運算符
身份運算符用于比較兩個對象的存儲單元(內(nèi)存地址),其結(jié)果為Bool類型。
運算符 | 名稱 | 舉例 | 描述 | 說明 |
is | a is b | 判斷兩個標識符是不是引用自一個對象。如果引用的是同一個對象則返回 True,否則返回 False。 | ||
is not | a is not b | 判斷兩個標識符是不是引用自不同對象。如果引用的不是同一個對象則返回結(jié)果 True,否則返回 False。 |
is 用于判斷兩個變量引用對象是否為同一個(同一塊內(nèi)存空間), == 用于判斷引用變量的值是否相等。
舉例:
a = 1
b = -1
c = -1
print (id(a))
print (id(b))
print (id(c))
print ('{} is {} 的結(jié)果是{}'. format(a,b,a is b))
print ('{} is {} 的結(jié)果是{}'. format(a,c,a is c))
print ('{} is not {} 的結(jié)果是{}'. format(c,b,c is not b))
運行結(jié)果:
1804495888
1804495824
1804495824
1 is -1 的結(jié)果是False
1 is -1 的結(jié)果是False
-1 is not -1 的結(jié)果是False