python全栈开发《14.比较与身份运算符》

说到比较运算符,其实就是我们上小学的时候学的比大小。它包括==,!=,>,<,>=,<=。这些都是对于两个数字进行比大小的方法。

身份运算符:其实就是python中检查变量地址的一种方法。通过身份运算符比较两个变量是否出自一个变量之家。

通俗来说就是比较id函数返回的内存编号是不是相同。宏观的对比较运算符和身份运算符做一个简单的介绍。

f3eb6edb733859e812d25db90e431ad8.png
比较运算符 

==:也支持数字的比较,判断是否相等。字符串、列表、元组、字典都可以通过双等号来判断是否相等。

baf254f69018543fda7e2839624f810a.png
身份运算符

身份运算符其实就是判断两个变量的内存住址是否相同。如果地址相同,就认为这两个变量是相同的, 它们是一家人。

单元存储就是我们提过的内存块(内存地址)。以上所有的比较,返回的都是布尔类型。

# coding:utf-8

a = 1
b = 2.2
c = 0
d = 18
d_01 = 18
e = -3
f = 300
f_01 = 300

print(a == b)
print(a != b)
print(a < b)
print(a > e)
print(d >= b)
print(d >= d_01)

print(d == d_01)
print(d is d_01)
print('d id is:',id(d))
print('d_01 id is:',id(d_01))

print(f == f_01)
print(f is f_01)

print(f is d)
print(id(f))
print(id(d))

print(f is not d)

运行结果:

/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/compare.py 
False
True
True
True
True
True
True
True
d id is: 4388053808
d_01 id is: 4388053808
True
True
False
4378638288
4388053808
True

进程已结束,退出代码为 0
6eb4f52a833ca6d624e071d2f16a98cd.png

在python解释器里,刚才在Terminal里输入了python,打开了python原生的python解释器。在这里边判断的时候,python会把0-255的数字,提前定义到内存中。

所以在0-255数字范围内,定义的变量都会直接从已经定义好的内存地址中直接去拿。但是了超过了255之后,刚才定义的300,就不在一开始定义好的范围内了。所以就是false了。

为什么在脚本中定义的f和f_01都是300,已经超过了255,还是true呢?

因为当我们定义了f等于300的时候,这个300已经被定义在了内存里。

所以再去定义一个新的变量f_01,这个变量拥有了之前相同的变量的值,所以它会直接从已有的内存地址里拿过来。等于说借人家的用一用。这就是在脚本中它相等,但是在解释器下不相等的原因。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清菡软件测试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值