Python中的is、==和cmp()比较字符串

python 中的is、==和cmp(),比较字符串

  • ==: 用来判断两个对象的值是否相等
  • is: 判断两个变量是否引用的是同一个对象,底层判断的依据是两个变量的id是否相等、
  • cmp()在Python3中cmp函数被移除了。
    c m p ( x , y ) = { 0 , i f x = y 负 数 , i f x < y 正 数 , i f x > y cmp(x, y) = \left\{ \begin{aligned} 0,\qquad\qquad\quad if \quad x = y \\ 负数 ,\qquad\qquad if\quad x < y \\ 正数 ,\qquad\qquad if \quad x > y \end{aligned} \right. cmp(x,y)=0,ifx=y,ifx<y,ifx>y

注意: 比较数字是否相等不要用is

a = 0
b = 0
while a is b:
    a += 1
    b += 1

print id(a), a
print id(b), b

结果:

23105944 257
23105968 257

这个结果的原因:这实际上是当前cpython实现中的硬编码限制,解释器预先分配了从0到256的数字。所以从0到256的数字对象的不同引用a和b用is对比是True.

参考:

  1. https://onlypython-group.iteye.com/group/wiki/852-%E6%93%8D%E4%BD%9C%E7%AC%A6is%E7%9A%841%E4%B8%AA%E8%AF%A1%E5%BC%82%E9%97%AE%E9%A2%98
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值