python 10**0.5==10?

pstar 2013-12-14 05:01:57
>>> 100**0.5 != 4+6
False
>>> 100**0.5 == 4+6
True
>>> 4+6
10
>>> 100**0.5
10.0
>>> 10.0==10
True

谁能解释一下为什么?
...全文
1135 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
圆㺭 2014-02-28
  • 打赏
  • 举报
回复
因为只有当操作数属于同一类型时,对操作数进行比较运算才是有效的。对于内置数字,Python将强制进行类型转换,将一种类型转换为另一种类型,转换规则如下: (1)如果操作数之一是复数,则将另外一个操作数也转换为复数 (2)如果操作数之一是浮点数,则将另外一个操作数也转换为浮点数 所以程序在进行10.0和10的比较时,会先将10转换为10.0再进行比较运算,结果就是true
梧桐126 2014-02-27
  • 打赏
  • 举报
回复
3楼是对的..
黄哥Python培训 2014-02-26
  • 打赏
  • 举报
回复
你这个意思 大概是想 对浮点数 比较 浮点数在计算机中是近似处理,所以不能直接 == 运算。 要比较2个浮点数 可以让2个数之差绝对值 小于一个很小的浮点数 ,就认为2个浮点数近似相等。
crper 2014-02-24
  • 打赏
  • 举报
回复
有何错误? 0.5的100次幂是10.0 10.0 != 10 当然是错的。
fibbery 2014-02-10
  • 打赏
  • 举报
回复
你觉得哪里有问题?
零丁若叹 2014-02-08
  • 打赏
  • 举报
回复
100**0.5为根号100
易冷天涯 2014-01-22
  • 打赏
  • 举报
回复
在Python里,100**0.5就等于100的0.5次方,就等于100的算数平方根,就等于10。
niuyuan456 2014-01-22
  • 打赏
  • 举报
回复
python中的对象都是由身份(id)、类型和值构成的。对于‘==’来说,只是对对象的值进行比较,所以会出现楼主看到的结果。
python还提供了is(not is)运算符,来比较对象的id。
Kevin.Ro 2013-12-20
  • 打赏
  • 举报
回复
三楼正解,100**0.5,就是对100进行开方
闻大大 2013-12-19
  • 打赏
  • 举报
回复
**就是幂运算 100**0.5是100的二分之一次方 结果为10
  • 打赏
  • 举报
回复
貌似是值比较的吧。。。
bugs2k 2013-12-14
  • 打赏
  • 举报
回复

37,726

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧