Python 中 is 的使用

在 Python 中,进行数值比较时会用到 “==” 运算符,那么怎么判断两个变量的地址是否相同呢?这里会用到 “is” 关键字。

变量基本要素

Python 中,对于任意的变量都具有三个基本要素:分别是 id,type,value。其中 id 为身份标识,即唯一能识别变量的标志,type 为数据类型,value 为数据值。在定义变量之后,可以看到这几个基本要素:

>>> a = 1
>>> id(a)
1779264528
>>> type(a)
<class 'int'>
>>> a
1

== 比较运算符

“==” 主要用于判断两个对象的 value 是否相等,属于 Python 标准操作符中的比较运算符。

>>> 1 == 1
True
>>> 1 == 2
False
>>> a = 1
>>> b = 2
>>> a == b
False

is 同一性运算符

“is” 主要用来判断两个对象的身份标识,即两者的基本要素 “id”,也叫做同一性运算符。

>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True
>>> c = 1.0
>>> d = 1.0
>>> c == d
True
>>> c is d
False
>>> e = "abc"
>>> f = "abc"
>>> e == f
True
>>> e is f
True
>>> g = [1,2,3]
>>> h = [1,2,3]
>>> g == h
True
>>> g is h
False
>>> i = (1,2,3)
>>> j = (1,2,3)
>>> i == j
True
>>> i is j
False

从上面可以看出,“is” 同一性运算符的运行结果与 “==” 比较运算符的运算结果不同。

在 Python 中,整型对象和字符串对象是不可变对象,所以 Python 会很高效地对它们进行缓存。因此在程序上看应该创建新对象时,却并不会创建新对象,而是对它们进行缓存。

但 Python 仅缓存简单整型,因为 Python 认为在程序中这些小整型会经常被用到。而 Python 缓存的值也是有一定范围的,并且是可变的,使用时要注意。

  • 29
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值