admin管理员组文章数量:1487745
python全栈开发《14.比较与身份运算符》
说到比较运算符,其实就是我们上小学的时候学的比大小。它包括==,!=,>,<,>=,<=。这些都是对于两个数字进行比大小的方法。
身份运算符:其实就是python中检查变量地址的一种方法。通过身份运算符比较两个变量是否出自一个变量之家。
通俗来说就是比较id函数返回的内存编号是不是相同。宏观的对比较运算符和身份运算符做一个简单的介绍。
比较运算符
==:也支持数字的比较,判断是否相等。字符串、列表、元组、字典都可以通过双等号来判断是否相等。
身份运算符
身份运算符其实就是判断两个变量的内存住址是否相同。如果地址相同,就认为这两个变量是相同的, 它们是一家人。
单元存储就是我们提过的内存块(内存地址)。以上所有的比较,返回的都是布尔类型。
代码语言:javascript代码运行次数:0运行复制# 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)
运行结果:
代码语言:javascript代码运行次数:0运行复制/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
在python解释器里,刚才在Terminal里输入了python,打开了python原生的python解释器。在这里边判断的时候,python会把0-255的数字,提前定义到内存中。
所以在0-255数字范围内,定义的变量都会直接从已经定义好的内存地址中直接去拿。但是了超过了255之后,刚才定义的300,就不在一开始定义好的范围内了。所以就是false了。
为什么在脚本中定义的f和f_01都是300,已经超过了255,还是true呢?
因为当我们定义了f等于300的时候,这个300已经被定义在了内存里。
所以再去定义一个新的变量f_01,这个变量拥有了之前相同的变量的值,所以它会直接从已有的内存地址里拿过来。等于说借人家的用一用。这就是在脚本中它相等,但是在解释器下不相等的原因。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-07-14,如有侵权请联系 cloudcommunity@tencent 删除全栈python变量开发内存本文标签: python全栈开发《14比较与身份运算符》
版权声明:本文标题:python全栈开发《14.比较与身份运算符》 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1754832416a3180182.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论