题目描述
一段相同的代码,在Python解释器里和Pycharm里面的运行结果不一样
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
a = "aaa aaa"
b = "aaa aaa"
print(a is b)
在Python解释器里执行的结果是Falses
但是我在Pycharm里面的执行结果是True,想问下这是为什么?
这是在Pycharm里面的执行结果
这是在Python解释器里面的执行结果
一段相同的代码,在Python解释器里和Pycharm里面的运行结果不一样
// 请把代码文本粘贴到下方(请勿用图片代替代码)
a = "aaa aaa"
b = "aaa aaa"
print(a is b)
在Python解释器里执行的结果是Falses
但是我在Pycharm里面的执行结果是True,想问下这是为什么?
这是在Pycharm里面的执行结果
这是在Python解释器里面的执行结果
比较值使用 == 比较内存地址使用 is 比较类型 使用 isinstance
一般来说 字符串这种数据不可变的数据... 也就是一般情况下 指向不同的内存地址, 如果为True, 可能就是楼上说的 解释器做的优化, 建议尽量避免这种操作
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答463 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
跟pycharm无关,运行方式不同造成的
在python shell中也可以为True
在终端使用python lx.py命令运行也是True
这是Cpython在compile time时做的优化。