>>>a=10.0>>>b=10.0>>>a is bFalse为什么当a=10,b=10时,a is b输出的是True呢?

>>>a=10.0

>>>b=10.0
>>>a is b
False

为什么当a=10,b=10时,a is b 输出的是True呢?

a is b

比较的是变量a与变量b的内存地址是否相同,即

id(a)==id(b)

Python的内置函数id就是用来查看变量地址的

id(a)等于id(b)说明变量a和变量b指向的是同一个内存空间。

Python中整数、浮点数都是immutable,也就是创建以后不能改变内存空间的值,对变量重新赋值以后,相当于变量重新指向了另外一处内存空间。

a = 10
print id(a)
a = a + 1
print id(a) #id(a)的值会反生变化

这样,多个变量指向相同的内存空间就不会有影响,反而节省了内存的占用。

然而具体是否相同值的变量就占有相同内存空间,完全有Python的实现方式决定。

当变量a与b的值到1000时,你会发现他们的内存空间又不一样了

a = 1000
b = 1000
id(a) == id(b)
a is b

总的来说写程序是一般不用关注变量的内存空间地址,也很少使用is命令

python中仅缓存简单的整型,(-1,100)。这个a=10,b=10,指向相同的整型对象,但是a=10.0和b=10.0时,并没有指向相同的浮点型对象。

python中,a=10.0 b=10.0 a is b 为什么输出是false的更多相关文章

  1. 警惕!Python 中少为人知的 10 个安全陷阱!

    作者:Dennis Brinkrolf 译者:豌豆花下猫@Python猫 原题:10 Unknown Security Pitfalls for Python 英文:https://blog.sona ...

  2. python中sys.exit()和os._exit(0)退出程序

    python中退出程序的两种方法,0为默认状态,可以为空,两者均会退出当前运行的程序,os._exit(0)中的0不能省略 sys.exit(0):可以捕获SystemExit异常,然后做相应的清理工 ...

  3. python中2进制、10进制、16进制等之间的转换

    10转2: bin(8) # '0b1000' 2转10: int( 10转16: hex(15) # '0xf' 16转10: int( 2进制和16进制中间通过转10进制可以相互转换 from b ...

  4. 在Python中使用moviepy进行音视频剪辑混音合成时输出文件无声音问题

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在使用moviepy进行音视频剪辑时发现输出成功但 ...

  5. python 中str format 格式化数字补0方法

      >>> "{0:03d}".format(1)'001'>>> "{0:03d}".format(10)'010'> ...

  6. python中快速获取本地时区当天0点时间戳的一种方法

    如下所示,看了网上的几种方法,这种方法算是代码量比较小的,同时可以保证求的是本地时区的0点时间戳,返回的是浮点数,需要的话自己转一下int In [1]: import time In [2]: fr ...

  7. Python 中的0 和 1 的意思

    Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false,所以Python中的 1 代表 True,0代表False

  8. 如何在Python中调用Matlab

    检查您的系统是否具有受支持的 Python 版本和 MATLAB R2014b 或更新版本.要检查您的系统上是否已安装 Python,请在操作系统提示符下运行 Python. 1)打开Prompt,输 ...

  9. 在Ubuntu 13.10 中安装配置 Hadoop 2.2.0

    预备条件: 1. 已安装JDK Add Hadoop Group and User $ sudo addgroup hadoop$ sudo adduser --ingroup hadoop hdus ...

随机推荐

  1. node.js入门学习(三)--npm

    一.npm介绍 1)npm:node package manager是node.js默认的以js编写的软件包管理系统 官网:www.npmjs.com 文档:docs.npmjs.com 2)提到np ...

  2. THU-CCF WC2019两开花记

    今年年初,清华大学举办的THUWC2019即将正式开启,我将继续扮演蒟蒻OIER,努力创造一个菜鸡的形象,THU-CCF WC两爆炸,笑掉各位大牙,大家多多关注. Day0 广州好热啊╰(‵□′)╯! ...

  3. android字符串工具类

    package com.ctbri.weather.utils.calendar; /** * Created by IntelliJ IDEA. * User: zhouxin@easier.cn ...

  4. 如何解决tomcat9.0.14启动时控制台中出现乱码

    把/conf/logging.properties里的java.util.logging.ConsoleHandler.encoding= UTF-8改成java.util.logging.Conso ...

  5. debian配置国内软件源

    本例在debian:buster-slim docker镜像中实验通过 1.启动docker实例 docker run -it --name debian debian:buster-slim bas ...

  6. 图解http协议学习笔记

    一 ,基本概念 1互联网相关的各协议族为tcp/ip协议(网际协议),tcp/ip  ftp,DNS(通过域名解析ip地址),http(超文本传输协议) 还有很多协议 ,只是列举比较熟悉的 2tcp/ ...

  7. HTTP学习记录:二、请求方法

    学习资源主要为:@小坦克HTTP相关博客 最基础的是4种,GET.POST.PUT.DELETE对应着对资源的查.改.增.删.最常用的是GET和POST. GET一般用于获取/查询资源信息: POST ...

  8. App测试工具选择

    一.功能测试自动化 a) 轻量接口自动化测试: jmeter, b) APP UI层面的自动化 android:UI Automator Viewer,Android Junit,Instrument ...

  9. Spring获取request、session以及servletContext

    获取request: HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestA ...

  10. nslookup、dig、host

    1.作用:查询域名对应的地址或者地址对应的域名 2.nslookup已经不建议使用,慢慢就会废弃,建议使用dig和host代替 3.格式 dig: dig @NameServer 域名 Type ho ...