Python 运算符 - 4

身份运算符

身份运算符用于比较两个对象的存储单元

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis 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

 

运算符优先级

以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。 相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):

运算符

描述

(expressions...),

[expressions...]{key: value...}{expressions...}

圆括号的表达式

x[index]x[index:index]x(arguments...)x.attribute

读取,切片,调用,属性引用

await x

await 表达式

**

乘方(指数)

+x-x~x

正,负,按位非 NOT

*@///%

乘,矩阵乘,除,整除,取余

+-

加和减

<<>>

移位

&

按位与 AND

^

按位异或 XOR

|

按位或 OR

in,not inis,is not<<=>>=!===

比较运算,包括成员检测和标识号检测

not x

逻辑非 NOT

and

逻辑与 AND

or

逻辑或 OR

if -- else

条件表达式

lambda

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,新的一年,新的起点,扬帆起航,共创辉煌,加油吧老铁们!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小白学大数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值