
身分操作符的采用
机能明确要求
身分操作符模拟
示例标识符
a = 11; b = 11
print(a, b)
print(a is b, a is not b)
print(id(a), id(b))
a = 11; b = 22
print(a, b)
print(a is b, a is not b)
print(id(a), id(b))
运行结果
11 11
True False
2158295056944 2158295056944
11 22
False True
2158295056944 2158295057296
知识说明
身分操作符用于比较两个对象的内存地址

在身分运算中,内存地址相同的两个变量进行is运算时,返回True;内存地址不同的两个变量进行is not运算时,返回True。
集合操作符模拟
机能明确要求
集合操作符模拟
示例标识符
print({1, 2, 3} | {3, 4, 5}) # 并集,自动去除重复元素
print({1, 2, 3} & {3, 4, 5}) # 交集
print({1, 2, 3} ^ {3, 4, 5}) # 对称差集
print({1, 2, 3} – {3, 4, 5}) # 差集
运行结果
{1, 2, 3, 4, 5}
{3}
{1, 2, 4, 5}
{1, 2}
知识说明
集合的交集、并集、对称差集等运算借助于&、|、^来实现,而差集则采用减号操作符实现(注意,并集操作符不是加号)。
a & b:(交集)集合a和b中都包含了的元素
a | b:(并集,可去除集合重复元素)集合a或b中包含的所有的元素
a – b:(差集,结果是前者减去后者中相同项而剩下的项)集合a中包含而集合b中不包含的元素
a ^ b:(对称差集,可排序)集合a和b中包含的所有元素中,去除a和b中共有的元素。
按位操作符示例
机能明确要求
按位操作符是把数字看作二进制来进行计算的。假设a为60,b为13。
示例标识符
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
知识说明
通常,数字都是采用十进制的,按位操作符会自动将输入的十进制数转为二进制,再进行相应的运算。

bool运输示例
机能明确要求
bool值运算
示例代码
print(True & True, True and True)
print(True | False, True or False)
print(True & False, True and False)
print(False | False, False or False)
运行结果
True True
True True
False False
False False
标识符分析
按位操作符合逻辑操作符用于bool值运算时,按位&和逻辑and的运算效果一样,当符号左右两个值都为True时,返回结果True,否则返回False;按位|和逻辑or的运算效果一样,当符号左右两个值中有一个值为True时,返回结果True,否则返回False。
按位与&运算示例
机能明确要求
采用按位与 & 。
示例标识符
a = 0o77; b = a & 3
print (a & b = %d % b)
b &= 7
print (a & b = %d % b)
运行结果
a & b = 3
a & b = 3
按位或运算示例
机能明确要求
采用按位或 | 。
示例标识符
a = 0o77; b = a | 3
print (a | b = %d % b)
b |= 7
print (a | b = %d % b)
运行结果
a | b = 63
a | b = 63
按位异或运算示例
机能明确要求
采用按位异或 ^ 。
示例标识符
a = 0o77; b = a ^ 3
print (a ^ b = %d % b)
b ^= 7
print (a ^ b = %d % b)
运行结果
a ^ b = 60
a ^ b = 59