python的自带的ide运行_为什么同样的语句在python自带的ide和pycharm中运行的结果不一样?...

好久没玩python了

首先

没记错的话应该是python在解释器中为了一些效率

将一些比较小的可能常用到数字已经在内存中分配好了

比如我的IDLE的范围是-5到256

这样, 每次有变量引用这些值的时候, 就提高了效率

但一旦超过这些值, 还是需要重新分配空间的

其次, 这个解释只是比较初步, 本质问题是你在解释器里运行和在脚本里是不一样的

python变量是引用

比如你在pycharm的终端里用解释器, 一样是符合我上面提到的规律,

2个名字不同的变量都指向了解释器已经分配好了的内存空间(255)

一旦超过, 即便数字相同(555), 他们在内存上的位置是不同的, 有各自的空间

以脚本方式运行程序就不一样了

比如

a = 555

是分配一块值为555的内存空间, a指向他

b = 555

b也指向这块空间, 接下来让b = 其他的, 会改变b指向的空间

这是python基础吧...

不过, 你继续学习下去会遇到列表这种情况

a = [1, 2, 3]

b = [1, 2, 3]

a is b就是false了

这里可以解释为, 如果是列表, a和b还是指向同一个空间, 你不小心修改了b列表中的值, 那么a列表的值也变了

但数字不一样, 如果你修改b = 666

是让b重新指向了一个值为666的空间

总之, 联系到内存空间分配来思考就清晰得多

这跟C/C++不一样, C/C++是每次赋值,都要申请内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值