python中,a=10.0 b=10.0 a is b 为啥输出是false

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中,a=10.0 b=10.0 a is b 为啥输出是false相关的知识,希望对你有一定的参考价值。

参考技术A 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输入eval

eval内置函数

 

 

下面是算法中常见的输入 1 2 3 接受到 a b c 中

a,b,c=input().split()
a,b,c=eval(a),eval(b),eval(c)
d=b*b-4*a*c
print(d)

或者是这样接受

a,b,c=map(int,input().split())
print(b*b-4*a*c)

 

 

 

输出的时候(print, 会自动加一个空格)

 

 

 

以上是关于python中,a=10.0 b=10.0 a is b 为啥输出是false的主要内容,如果未能解决你的问题,请参考以下文章

request 10.0 模块安装

Python模块之random

windows10+Python3.6+Anaconda3+tensorflow1.10.0???????????????

Python Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)

iOS10.0 TabBar Bug(底部同时展示原生和自定义tabBar)-b

安装python 第三方库遇到的安装问题 microsoft visual studio c++ 10.0 is required,Could not find function xmlCheckVe