逻辑运算符
a = True
b = False
print(a and b) # 逻辑与
print(a or b) # 逻辑或
print(not b) # 逻辑非
# 德·摩根定律(De Morgan`s Law)
"""
not (A and B) 等价于 not A or not B
not (A or B) 等价于 not A and not B
通过not向内移动,and和or实现了反转。
建议使用后者更易于理解。
"""
比较运算符
color1 = 'red'
color2 = 'orange'
print(color1 is color2) # 相同
print(color1 is not color2) # 不相同
print(color1 == color2) # 相等
print(color1 != color2) # 不相等
value1 = 1
value2 = 2
print(value1 < value2) # 小于
print(value1 <= value1) # 小于等于
print(value2 > value1) # 大于
print(value2 >= value2) # 大于等于
print(value1 < value2 >= value2) # 链式比较
算术运算符
value1 = 10
value2 = 3
print(value1 + value2)
print(value1 - value2)
print(value1 * value2)
print(value1 / value2)
print(value1 // value2) # 整除取商
print(value1 % value2) # 取余数
赋值运算符
value1 = 10
value2 = 3
value1 += value2 # value1 = value1 + value2
print(value1)
value1 -= value2 # value1 = value1 - value2
print(value1)
value1 *= value2 # value1 = value1 * value2
print(value1)
value1 /= value2 # value1 = value1 / value2
print(value1)
value1 //= value2 # value1 = value1 // value2
print(value1)
value1 %= value2 # value1 = value1 % value2
print(value1)
位运算符
按位运算是进行二进制层面的运算,把数字转换为二进制数,然后按位进行运算。按位运算的数字可以是二进制数,也可以是十进制数。
n1 = 0b10
n2 = 0b101
print(bin(n1 & n2)) # 按位与
print(bin(n1 | n2)) # 按位或
print(bin(~ n1)) # 按位取反,~n=-(n+1)
print(bin(n1 ^ n2)) # 按位异或运算,相同为0,不同为1,即按位相加不进位
print(bin(n2 << 2)) # 左移位,用0填充,左移1位相当于乘以2,左移m位相当于乘以2^m
print(bin(n2 >> 2)) # 右移位,右移1位相当于整除2,右移m位相当于整除2^m