为什么 print(2 == 2.) 在 Python 中返回 True

ch2019

为什么print(2 == 2.)返回True

根据我的理解2是整数并且2.0是浮点数。它们在内存中的存储方式不同。

我认为它正在返回,True因为它们都属于同一类integer class

我经历过类似的堆栈溢出问题,但概念对我来说仍然不清楚。有人可以解释一下吗?

切普纳

内存表示与它没有任何关系(或者至少,它不会阻止某些整数与等效实数进行比较)。

2 == 2.由 实现int.__eq__(2, 2.),它被定义为通过进行适当的类型转换来处理整数/浮点比较。由于int是比 更“窄”的类型float2因此首先转换为浮点值。(作为一个实现细节,我怀疑这是通过int.__eq__调用完成的,float.__eq__(2., 2)并在那里完成转换,而不是int知道有关如何表示浮点值的任何特定细节类型。)

请注意,并非每个 int都可以精确地表示为浮点值,因为int使用任意精度但是float固定的。例如,在我的机器上

>>> 2000000000000000000000000000000000 == 2000000000000000000000000000000000.
False

(我复制粘贴了整数以生成浮点文字,因此 0 对齐。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Python

为什么在Python 2中''> 0 True?

来自分类Dev

为什么在Python 1.0中== 1 >>> True; -2.0 == -2 >>> True等?

来自分类Dev

为什么“ True and〜True” -2?

来自分类Python

为什么range(0)== range(2,2,2)在Python 3中为true?

来自分类Dev

python any() 的工作方式不同,为什么 [1,3,5] 中的 any([1,2]) 返回 True 而 ['a','v' 中的 any(['a','b']) 不返回, 'X']?

来自分类Dev

为什么语句[1,2] <[2,1]在python中评估为True

来自分类Python

为什么〜True导致-2?

来自分类Python

为什么... == True在Python 3中返回False?

来自分类Dev

为什么Python中的逗号符号返回true?

来自分类Dev

为什么1&1 === 1返回true,而2&2 === 2返回false?

来自分类Dev

为什么“ range(2)== True中的1”评估为False?

来自分类Javascript

为什么3> 2> 1返回false,而1 <2 <3返回true?

来自分类Python

为什么在Python中`(True,True,True)== True,True,True`不是True?

来自分类Dev

为什么 print(False == True and not True) 返回 False?

来自分类Python

波浪号对布尔值的影响-为什么在Python中〜True为-2和〜False为-1?

来自分类Python

while(1)vs. while(True)-为什么有区别(在python 2字节码中)?

来自分类Dev

为什么在Python中2 **-1025!= 0.0

来自分类Dev

为什么string.StartsWith(“ \ u2D2D”)总是返回true?

来自分类Python

为什么在Python 3中str(float)返回的位数要比Python 2多?

来自分类Dev

为什么python 3中的json.dumps()返回python 2的不同值?

来自分类Dev

为什么 True 值返回 True 并且在 python 中具有函数成员资格

来自分类Dev

hash((-2,2))== hash((2,-2))返回True(Python)

来自分类Dev

传递1 2 23 32 4在python的max函数中返回4,为什么?

来自分类Dev

为什么我对 2 位数字的 mod (%) 操作在 python 中返回零

来自分类Dev

为什么 Python3 中的 True, True, True == (True, True, True) 给出 o/p True, True, False?

来自分类Dev

为什么5.00> 20.00返回true,对JavaScript parseFloat.tofixed(2)

来自分类Dev

为什么[1,1,2] | [] == [1,2]在Ruby中是否为true?

来自分类Dev

为什么是True + 2,3或False + 2,2

来自分类Dev

为什么{} | [] |()| str | set | etc。> n在python2.x中等于True吗?

Related 相关文章

  1. 1

    为什么在Python 2中''> 0 True?

  2. 2

    为什么在Python 1.0中== 1 >>> True; -2.0 == -2 >>> True等?

  3. 3

    为什么“ True and〜True” -2?

  4. 4

    为什么range(0)== range(2,2,2)在Python 3中为true?

  5. 5

    python any() 的工作方式不同,为什么 [1,3,5] 中的 any([1,2]) 返回 True 而 ['a','v' 中的 any(['a','b']) 不返回, 'X']?

  6. 6

    为什么语句[1,2] <[2,1]在python中评估为True

  7. 7

    为什么〜True导致-2?

  8. 8

    为什么... == True在Python 3中返回False?

  9. 9

    为什么Python中的逗号符号返回true?

  10. 10

    为什么1&1 === 1返回true,而2&2 === 2返回false?

  11. 11

    为什么“ range(2)== True中的1”评估为False?

  12. 12

    为什么3> 2> 1返回false,而1 <2 <3返回true?

  13. 13

    为什么在Python中`(True,True,True)== True,True,True`不是True?

  14. 14

    为什么 print(False == True and not True) 返回 False?

  15. 15

    波浪号对布尔值的影响-为什么在Python中〜True为-2和〜False为-1?

  16. 16

    while(1)vs. while(True)-为什么有区别(在python 2字节码中)?

  17. 17

    为什么在Python中2 **-1025!= 0.0

  18. 18

    为什么string.StartsWith(“ \ u2D2D”)总是返回true?

  19. 19

    为什么在Python 3中str(float)返回的位数要比Python 2多?

  20. 20

    为什么python 3中的json.dumps()返回python 2的不同值?

  21. 21

    为什么 True 值返回 True 并且在 python 中具有函数成员资格

  22. 22

    hash((-2,2))== hash((2,-2))返回True(Python)

  23. 23

    传递1 2 23 32 4在python的max函数中返回4,为什么?

  24. 24

    为什么我对 2 位数字的 mod (%) 操作在 python 中返回零

  25. 25

    为什么 Python3 中的 True, True, True == (True, True, True) 给出 o/p True, True, False?

  26. 26

    为什么5.00> 20.00返回true,对JavaScript parseFloat.tofixed(2)

  27. 27

    为什么[1,1,2] | [] == [1,2]在Ruby中是否为true?

  28. 28

    为什么是True + 2,3或False + 2,2

  29. 29

    为什么{} | [] |()| str | set | etc。> n在python2.x中等于True吗?

热门标签

归档