1-4、逻辑运算符
逻辑运算符用于对bool类型变量进行运算,其结果也是bool类型。
以下假设变量: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"
运行结果:
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、位运算符
位运算,是以二进位为单位进行位运算的,操作数和结果都是整数类型的数据。
以下假设变量:a=60,b=13:
运算符 | 名称 | 举例 | 描述 | 说明 |
& | 按位与运算符 | a & b | 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。 | 返回值12。 |
| | 按位或运算符 | a | b | 只要对应的2个二进位有一个为1时,结果位就为1。 | 返回值61。 |
^ | 按位异或运算符 | a ^ b | 当两对应的二进位相异时,结果为1 | 返回值49。 |
~ | 按位取反运算符 | a ~ b | 对数据的每个二进制位取反,即把1变为0,把0变为1。 | 返回值-61。 |
<< | 左移动运算符 | a << 2 | 运算数的各二进位全部左移若干位,由"<<"右边的数字指定了移动的位数,高位丢弃,低位补0。 | 返回值240。 |
>> | 右移动运算符 | a >> 2 | 把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数字指定了移动的位数。 | 返回值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
运行结果:
1 - c 的值为:12
2 - c 的值为:61
3 - c 的值为:49
4 - c 的值为:-61
5 - c 的值为:240
6 - c 的值为:15
1-6、成员运算符
成员运算符用于运算成员是否在指定序列中,包含有字符串,列表或元组,其结果为Bool类型。
以下假设变量:a=4,b=2,list=[2,4,8,16]:
运算符 | 名称 | 举例 | 描述 | 说明 |
in | 成员内 | 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 中"
运行结果:
1 - 变量 a 不在给定的列表中 list 中
2 - 变量 b 不在给定的列表中 list 中
3 - 变量 a 在给定的列表中 list 中
1-7、身份运算符
身份运算符用于比较两个对象的存储单元(内存地址),其结果为Bool类型。
运算符 | 名称 | 举例 | 描述 | 说明 |
is | a is b | 判断两个标识符是不是引用自一个对象。如果引用的是同一个对象则返回 True,否则返回 False。 | ||
is not | a is not b | 判断两个标识符是不是引用自不同对象。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。
举例:
a = 1
b = -1
c = -1
print (id(a))
print (id(b))
print (id(c))
print ('{} is {} 的结果是{}'. format(a,b,a is b))
print ('{} is {} 的结果是{}'. format(a,c,a is c))
print ('{} is not {} 的结果是{}'. format(c,b,c is not b))
运行结果:
1804495888
1804495824
1804495824
1 is -1 的结果是False
1 is -1 的结果是False
-1 is not -1 的结果是False
联系客服