第十一讲 python中的逻辑运算符-比较运算符-位运算符
目录
1. 逻辑运算符
1.1 or (或)
1.2 and(与)
1.3 not (非)
2. 比较运算符
2.1 相等运算符(==)
2.2 不等运算符(!=)
2.3 大于运算符(>)
2.4 小于运算符(<)
2.5 大于等于运算符(>=)
2.6 小于等于运算符(<=)
3. 位运算符
3.1 按位与(&)
3.2 按位或(|)
3.3 按位异或(^)
3.4 按位取反(~)
3.5 左移运算符(<<)
3.6 右移运算符(>>)
4. 运算符优先级
1. 逻辑运算符
运算符
格式
说明
or 逻辑或
x or y
x为true,则不计算y,直接返回true;x为false,则返回y
and 逻辑与
x and y
x为true,则返回y的值x为false,则不计算y,直接返回false
not 逻辑非
not x
x为true,返回false;x为false,返回true
1.1 or (或)
如果至少一个操作数为True,则结果为True;否则,结果为False。
age = 25 nationality = "China" # 使用or运算符判断多个条件 if age >= 18 or nationality == "China": print("年龄大于等于18或者国籍是中国")
1.2 and(与)
如果两个操作数都为True,则结果为True;否则,结果为False。
x = 5 y = 10 z = 15 # 使用and运算符判断多个条件 if x < y and y < z: print("x小于y,并且y小于z")
1.3 not (非)
对操作数进行取反操作,如果操作数为True,则结果为False;如果操作数为False,则结果为True。
is_raining = False # 使用not运算符取反 if not is_raining: print("天气晴朗")
2. 比较运算符
运算符
描述
实例
==
等于 – 比较对象的值是否相等
(a == b) 返回 False。
!=
不等于 – 比较两个对象的值是否不相等
(a != b) 返回 true.
>
大于 – 返回x是否大于y
(a > b) 返回 False。
<
小于 – 返回x是否小于y。
(a < b) 返回 true。
>=
大于等于 – 返回x是否大于等于y。
(a >= b) 返回 False。
<=
小于等于 – 返回x是否小于等于y。
(a <= b) 返回 true。
2.1 相等运算符(==)
检查两个值是否相等。
a = 5 b = 5 c = 10 print(a == b) # 输出:True print(a == c) # 输出:False
2.2 不等运算符(!=)
检查两个值是否不相等。
a = 5 b = 5 c = 10 print(a != b) # 输出:False print(a != c) # 输出:True
2.3 大于运算符(>)
检查左侧的值是否大于右侧的值。
a = 5 b = 10 print(a > b) # 输出:False print(b > a) # 输出:True
2.4 小于运算符(<)
检查左侧的值是否小于右侧的值。
a = 5 b = 10 print(a < b) # 输出:True print(b < a) # 输出:False
2.5 大于等于运算符(>=)
检查左侧的值是否大于等于右侧的值。
a = 5 b = 10 print(a >= b) # 输出:False print(b >= a) # 输出:True
2.6 小于等于运算符(<=)
检查左侧的值是否小于等于右侧的值。
a = 5 b = 10 print(a <= b) # 输出:True print(b <= a) # 输出:False
3. 位运算符
运算符
描述
&
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则0
|
按位或运算符:只要对应的二个二进位有一个为1时,结果为就为1.
^
按位异或运算符:当两对应的二进制位相异时,结果为1
~
按位取反运算符:对数据的每个二进制取反,既把1变为0,把0变为1,~x类似于-x-1
<<
左移动运算符:运算数的每个二进位全部左移若干位,由”<<”右边的数据指定移动的位数,高位丢弃,低位补0
>>
右移动运算符:把”>>”左边运算数的每个二进制位全部右移若干位,”>>”右边的数指定移动 的位数
3.1 按位与(&)
对两个数的每个二进制位执行与操作。
a = 5 # 二进制表示为 0101 b = 3 # 二进制表示为 0011 result = a & b # 二进制结果为 0001,即十进制的1 print(result) # 输出:1
3.2 按位或(|)
对两个数的每个二进制位执行或操作。
a = 5 # 二进制表示为 0101 b = 3 # 二进制表示为 0011 result = a | b # 二进制结果为 0111,即十进制的7 print(result) # 输出:7
3.3 按位异或(^)
对两个数的每个二进制位执行异或操作。
a = 5 # 二进制表示为 0101 b = 3 # 二进制表示为 0011 result = a ^ b # 二进制结果为 0110,即十进制的6 print(result) # 输出:6
3.4 按位取反(~)
对一个数的每个二进制位执行取反操作。
a = 5 # 二进制表示为 0101 result = ~a # 结果为 -6 print(result) # 输出:-6
3.5 左移运算符(<<)
将一个数的二进制位向左移动指定的位数。
a = 5 # 二进制表示为 0101 result = a << 2 # 二进制结果为 10100,即十进制的20 print(result) # 输出:20
3.6 右移运算符(>>)
将一个数的二进制位向右移动指定的位数。
a = 20 # 二进制表示为 10100 result = a >> 2 # 二进制结果为 0101,即十进制的5 print(result) # 输出:5
4. 运算符优先级
运算符
描述
**
指数 (最高优先级)
~
按位翻转
* / % //
乘,除,取模和取整除
+ –
加法减法
>> <<
右移,左移运算符
&
位 'AND'
^ |
位运算符
<= < > >=
比较运算符
<> == !=
等于运算符
= %= /= //= -= += *= **=
赋值运算符
is is not
身份运算符
in not in
成员运算符
not or and
逻辑运算符
实际使用中,记住如下简单的规则即可,复杂的表达式一定要使用小括号组织。
优先加减 位运算和算术运算>比较运算符>赋值运算符>逻辑运算符 result = 10 + 5 * 2 # 乘法运算符*具有更高的优先级,所以先计算5*2,然后再加上10,结果为20 result = (10 + 5) * 2 # 括号改变了优先级,先计算括号内的加法运算,然后再乘以2,结果为30 result = 5 + 2 < 8 # 先计算5+2得到7,然后再与8进行比较,结果为True result = 5 > 2 and 3 < 6 # 先计算5>2得到True,然后再计算3<6得到True,最后进行and操作,结果为True
作者:还是那个同伟伟