gpt4 book ai didi

python - 使用 'is' 在 IDLE 和 python shell 中的不同结果

转载 作者:行者123 更新时间:2023-12-04 12:15:20 25 4
gpt4 key购买 nike

我正在探索 python 对比 == ,当我探索它时,我发现我是否写了以下内容;

>>> a = 10.24
>>> b = 10.24
在 python shell 中输入 >> a 是 b ,它给我输出为假。但是当我在 python 编辑器中编写以下代码并运行它时,我得到了正确的结果。
a = 10.24
b = 10.24
print(a is b)
谁能解释为什么我得到相同变量和表达式的两个不同结果?

最佳答案

should not rely on is用于在要测试相等性时比较值。is关键字比较变量的 id,并检查它们是否是同一个对象。这仅适用于 Python 中的整数范围 [-5,256],因为它们是单例(这些值被缓存和引用,而不是将值存储在内存中)。见 What's with the integer cache maintained by the interpreter?这与检查它们是否相同的值不同。
至于为什么它在 REPL 环境中的行为与传递的脚本不同,请参阅 Different behavior in python script and python idle? .它的要点是传递的脚本首先解析整个文件,而像 ipython 或 IDLE shell 这样的 REPL 环境一次读取一行。 a=10.24b=10.24在不同的上下文中执行,所以 shell 不知道它们应该是相同的值。

关于python - 使用 'is' 在 IDLE 和 python shell 中的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68455515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com