逻辑运算符
- and:逻辑与,当两个操作数都等价于True时,结果为第二个操作数的值,输出可以为等价于True的非布尔型数据
当有一个操作数等价于False,结果为第一个等价于False的操作数的值。 - or:逻辑或,当两个操作数都等价于False时,结果为第二个操作数的值,输出可以为等价于False的非布尔型数据
当有一个操作数等价于True,结果为第一个等价于True的操作数的值。 - not:逻辑非,如果操作数为 True,则返回 False;如果操作数为 False,则返回 True。
- 逻辑运算的短路现象:第一个操作数的值能确定一个逻辑运算的结果时,不会进行第二个操作数的运算。
布尔型代表真假值,通常用在条件判断和循环语句中。
Python 定义了 bool 类型以及两个常量 True 和 Flase 代表真假。
其实任何对象都可以转成布尔类型,也可以直接用于条件判断,下面几种情况可以认为是假。
常量 None 和 False
0, 0.0, 0j, Decimal(0), Fraction(0, 1)
空字符串,空集合等 ‘’, (), [], {}, set(), range(0)
示例
简单来说;and 就是有False就输出,没有 就输出最后一个
or就是有True就输出,没有就输出最后一个
位运算
- &:按位与,有0为0
- |:按位或,有1为1
- ^:按位异或,不同为1
- ~:按位取反,顾名思义
- <<:按位左移,左移的位数由<<右边的数指定,补0
- ‘>>:按位右移,小数点右侧的二进位丢弃,正数高位补0,负数高位补1
位运算是以补码来运算的所以首先介绍一个函数
bin()函数
bin()函数显示的是原码值,负数会有’-‘号
正数:原码、反码、补码相同
负数的原码:为取绝对值的数转二进制,然后符号位加一;
负数的反码:对该数的原码除符号位外,各位取反;
负数的补码:对该数的反码加1。–负数的补码即为负数的二进制数。
正数的补码很好知道,那负数的呢?
可以用全为1的二进制与负数进行按位与运算