在python中is和==都说常用的运算符之一,主要用于检测两个变量是否相等,返回True或者False,具体区别在哪呢?
一.前言
在讲解is和==区别直接先讲解一下内置函数id(),其实在文章 python可变数据类型和不可变数据类型 中也对内置函数id()有过讲解,主要用于获取变量的内存地址!关于内存现在不做过多讲解,你可以把内存地址当作一串数字符号,内存地址就好比每个人都有一个身份证号码一样!
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址): shuopython.com @WeChat Official Account(微信公众号):猿说python @Github:www.github.com @File:python_is.py @Time:2019/10/26:25 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ a = 5 b = False c = "hello" print("a内存地址:{}".format(id(a))) print("b内存地址:{}".format(id(b))) print("c内存地址:{}".format(id(c)))
输出结果:
a内存地址:1784504608 b内存地址:1784012992 c内存地址:2126520897696
二.python运算符 ==
如果两个变量的值相等,那么运算符 == 成立,返回True;反之返回False;示例代码如下:
a = 3 b = 3 print(a==b) # 整数与浮点数的比较 a = 3 b = 3.0 print(a==b) a = 3 b = 2.9999 print(a==b) # 字符串比较 a = "hello world" b = "HELLO WORLD" c = "hello " d = "hello world" print(a==b,a==c,b==c,a==d)
输出结果:
True
True
False
False False False True
三.python运算符 is
1.两个变量的值相等;
2.变量地址也相同(可以通过内置函数id获取变量内存地址);
如果同时满足以上两个条件,运算符 is 才成立,返回True;反之,不满足其中任何一个条件都会返回False;示例代码如下:
a = 333333 b = 333333.0 print(id(a)) print(id(b)) print(a is b) print("***"*20) a = 3 b = 3 print(id(a)) print(id(b)) print(a is b) print("***"*20) a = "hello world" b = "HELLO WORLD" c = "hello " d = "hello world" print(id(a)) print(id(b)) print(id(c)) print(id(d)) print(a is b,a is c,b is c,a is d)
输出结果:
2039213240016 2039234381168 False ************************************************************ 1784504544 1784504544 True ************************************************************ 2039217328240 2039217328176 2039217247376 2039217328240 False False False True
猜你喜欢:
转载请注明:猿说Python » python is和==区别
技术交流、商务合作请直接联系博主
扫码或搜索:猿说python

猿说python
微信公众号 扫一扫关注