身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
注: id() 函数用于获取对象内存地址。
下面我们用一个例子演示Python所有身份运算符的操作
实例:
a = 66
b = 66
if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")
if ( id(a) == id(b) ):
print ("2 - a 和 b 有相同的标识")
else:
print ("2 - a 和 b 没有相同的标识")
# 修改变量 b 的值
b = 86
if ( a is b ):
print ("3 - a 和 b 有相同的标识")
else:
print ("3 - a 和 b 没有相同的标识")
if ( a is not b ):
print ("4 - a 和 b 没有相同的标识")
else:
print ("4 - a 和 b 有相同的标识")
执行结果为:
1 - a 和 b 有相同的标识
2 - a 和 b 有相同的标识
3 - a 和 b 没有相同的标识
4 - a 和 b 没有相同的标识
注意:
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
实例:
a = [6, 8, 10]
b = a
print(b is a)
print(b == a)
b = a[:]
print(b is a)
print(b == a)
执行结果为:
True
True
False
True
运算符优先级
以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。 相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):
运算符 | 描述 |
---|---|
| 圆括号的表达式 |
| 读取,切片,调用,属性引用 |
await x | await 表达式 |
| 乘方(指数) |
| 正,负,按位非 NOT |
| 乘,矩阵乘,除,整除,取余 |
| 加和减 |
| 移位 |
| 按位与 AND |
| 按位异或 XOR |
| 按位或 OR |
| 比较运算,包括成员检测和标识号检测 |
| 逻辑非 NOT |
| 逻辑与 AND |
| 逻辑或 OR |
| 条件表达式 |
| lambda 表达式 |
| 赋值表达式 |
下面我们用一个例子演示Python所有运算符优先级的操作
实例:
a = 25
b = 15
c = 10
d = 5
e = 0
e = (a + b) * c / d #( 40 * 10 ) / 5
print ("(a + b) * c / d 运算结果为:", e)
e = ((a + b) * c) / d # (40 * 10 ) / 5
print ("((a + b) * c) / d 运算结果为:", e)
e = (a + b) * (c / d) # (40) * (10/5)
print ("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d # 25 + (150/5)
print ("a + (b * c) / d 运算结果为:", e)
执行结果为:
(a + b) * c / d 运算结果为: 80.0
((a + b) * c) / d 运算结果为: 80.0
(a + b) * (c / d) 运算结果为: 80.0
a + (b * c) / d 运算结果为: 55.0
and 拥有更高优先级:
实例:
x = True
y = False
z = False
if x or y and z:
print("yes")
else:
print("no")
上面的例子先计算 y and z 并返回 False ,然后 x or False 返回 True,执行结果为;
yes
本次的分享到此结束,老铁们可以点赞收藏一下哈,方便以后及时复习,没有关注的老铁关注一下,以后会不断更新。学习Python与大数据的路上,小小白与你同行,我们一起加油,有什么问题或者是感受也可以在评论区打出来,我们一起交流一下,共同进步。
2023,新的一年,新的起点,扬帆起航,共创辉煌,加油吧老铁们!