Python运算符汇总

本文介绍了Python中的逻辑运算符,如and、or、not,它们具有懒惰求值特性。关系运算符包括等价比较。测试运算符用于特定条件检查。位运算符适用于整数,包括与、或、异或及移位操作。最后讨论了运算符的优先级,建议在编写复杂表达式时使用括号明确逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑运算符

and ,or ,not

  1. 逻辑运算符and、or、not常用来连接条件表达式构成更加复杂的条件表达式,并且and和or具有懒惰求值逻辑短路的特点,当连接多个表达式时只计算必须要计算的值。

例如:
表达式"exp1 and exp2" 等价于 “exp1 if not exp1 else exp2 "
表达式"exp1 or exp2” 等价于 “exp1 if exp1 else exp2”

  1. 在编写复杂条件表达式时,合理安排不同条件的先后顺序,在一定程度上可以提高代码运行速度。
  2. 注意:运算符 and 和 or 不一定会返回True或False,而是得到最后一个被计算的表达式的值。运算符 not 一定会返回True或False。

关系运算符

运算符表达式含义
==x == yx 等于 y
!=x != yx 不等于 y
>x > yx 大于 y
>=x >= yx 大于等于 y
<x < yx 小于 y
<=x <= yx 小于等于 y

举例:

>>> "ABCDEF" == "ABCD"
False
>>> "ABCD" != "abcd"
True
>>> "ABC" > "ABD"
False
>>> 123 >= 23
True
>>> "ABC" < "上海"
True
>>> "123" <= "23"
True

测试运算符

运算符表达式含义
isx is yx 和 y 是同一个对象
is notx is not yx 和 y 不是同一个对象
inx in yx 是 y 的成员(y 是容器,eg:元组)
not inx not in yx 不是 y 的成员(y 是容器,eg:元组)

举例:

>>> x = y = 1
>>> x is y
True
>>> x = 1
>>> y = 2
>>> x is y
False
>>> x = 1
>>> y = 2
>>> x is not y
True
>>> 1 in (1, 2, 3)
True
>>> "A" in "ABCDEF"
True
>>> 1 not in (1, 2, 3)
False

位运算符

  1. 位运算符只能用于整数,其内部执行过程为:首先将整数转换为二进制数,然后右对齐,必要的时候左侧补0,按位进行运算,最后再把计算结果转换为十进制数字返回。
  2. 位于运算规则:1&1 = 1、1&0 = 0&1 = 0&0 = 0
    位或运算规则:1|1 = 1|0 = 0|1 = 1、0|0 = 0
    位异或运算规则:1 ^ 1 = 0^ 0 = 0、1 ^ 0 = 0 ^ 1 = 1
  3. 左移位时右侧补0,每左移一位相当于乘以2
    右移位时左侧补0,每右移一位相当于整除以2。
运算符用法含义优先级
~~ op按位求补1
<<op1 << op2将 op1 左移 op2 位2
>>op1 >> op2将 op1 右移 op2 位2
&op1 & op2按位逻辑与3
^op1 ^ op2按位逻辑异或4
|op1 | op2按位逻辑或5

举例:

>>> ~ 0x1                ### -2 = -0x2
-2
>>> 0xf0 << 4            ### 3840 = 0xf00
3840
>>> 0xf0 >> 4            ### 15 = 0xf
15
>>> 0xff00 & 0xf0f0      ### 61440 = 0xf000
61440
>>> 0xff00 ^ 0xf0f0      ### 4080 = 0xff0
4080
>>> 0xff00 | 0xf0f0      ### 65520 =  0xfff0
65520

运算优先级

  1. 运算符优先级遵循的规则为:算术运算符(先乘除,后加减)> 位运算符 >
    成员测试运算符 > 关系运算符 > 逻辑运算符
  2. 强烈建议在编写复杂表示式时使用圆括号来明确说明其中的逻辑
  3. 运算优先级(由左到右,从上到下依次增高)
运算符lambdaorandnot xin / not inis /is not< 、<=、>、>=、!=、==|^&<<、>>
描述Lambda表达式布尔"或"布尔"与"布尔"非"成员测试同一性测试比较按位与按位异或按位与移位
运算符+、-*、/、%+x、-x~x**
描述加法、减法乘法、除法、取余正负号按位翻转指数(向右结合)
  1. 记忆小口诀:
倒数第一或与非
测试比较上一级
按位或异与移位
乘除求余伴加减
全体单目排第二
大幂大佬笑嘻嘻
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值