• Zeros
    2023-09-04 来自河北
    第二段代码,我们在终端执行 python.exe 后,进入到交互模式,再次运行,发现没有共用一个盒子,通过 is 比较操作符也印证了我的结论。 为什么会出现两种不同的结论呢?这其实是 Python 为了优化运行效率,在 Python 解释器中做的一项优化工作,即在交互模式下,字符串中如果只包含普通字符(a-z A-Z),且不超过 65535 个字符长度(Python3.8 版本以前限制字符串字符串长度为 20 个字符),Python 解释器只在内存中保留一份该字符串对象-----是不说错了,在第二个例子python交互模式下,是保留了两份该字符串对象

    作者回复: 可以具体贴一下代码,我来帮你看一下。 因为目前留言在总结这一节下面,我没办法对应到具体的代码

    
    
  • Geek_443d61
    2023-08-25 来自陕西
    number1 = -7 number2 = -7 print(number1 is number2) 为啥我这显示 True

    作者回复: 虽然小整数缓存(即 -5 到 256 的范围)是 Python 的一个特性,但实际的缓存范围和特定的实现或平台设置可能有关。大多数常规的 CPython 实现都遵循这个缓存范围,但在某些情况下,其他数字可能也会被缓存,尤其是如果你的 Python 版本、实现或平台有所不同。 可以提供一下你的平台和版本

    
    
  • 小呀么小二郎
    2023-07-16 来自上海
    前面几节课程能听懂,作业也能独立完成,这节总结课看晕了。。。我决定先放一放,下周继续往下学习,然后下周末再来复习一下这一节

    作者回复: 我提供一个学习方法, 你可以尝试先做个标记,然后继续后面的内容,看看回过头来,是否能针对这一节不懂的地方,提出更具体的问题。 欢迎留言给我

    共 2 条评论
    
  • 流云箴逝水
    2023-03-01 来自福建
    var1 = "hello!" var2 = "hello!" id(var1) id(var2) print(var1 is var2) #需要加上print才能输出比较结果

    作者回复: 没错,如果不在Python交互环境,默认为变量赋值,执行函数等,不会进行输出。 python交互环境也是为了方便调试,才对变量直接输出的

    
    
  • sunny
    2022-11-17 来自北京
    整个课程多久能更新完毕,尹老师?

    编辑回复: sunny同学你好,按正常更新节奏(每周三更新一章,共15章)2月中旬可以更新完

    
    
  • yanyu-xin
    2023-01-05 来自广东
    import sys # 将浮点数或较大整数用str转为字符串,用intern驻留内存 # 较大整数 n5 = 1234567890 n6 = 1234567890 str_n5 = sys.intern(str(n5)) str_n6 = sys.intern(str(n6)) print((str_n5 is str_n6 )) # 浮点数 n7 = 1234567890.987654321 n8 = 1234567890.987654321 str_n7 = sys.intern(str(n7)) str_n8 = sys.intern(str(n8)) print((str_n7 is str_n8 ))
    
    1
  • 孔方兄
    2022-11-18 来自新加坡
    我们按照 Python 的变量赋值原理,再来理解一下第 3 行代码 var1 = var2 ,通常人们口中说的:“将 var2 赋值给 var1”,它内部的工作原理是:将 var1 标签从当前的盒子上取下来,贴在标记着 var2 标签的盒子上。那原来的盒子会怎样呢?一旦盒子上没有了标签,就会按照 Python 默认的空间分配和回收规则,继续保留,或者扔进垃圾箱,扔进垃圾箱的过程就叫做“内存回收”。 改成 我们按照 Python 的变量赋值原理,再来理解一下第 3 行代码 var1 = var2 ,通常人们口中说的:“将 var2 赋值给 var1”,它内部的工作原理是:将var2 对应的内存值 拷贝 并 粘贴到 var1 对应的内存中。
    共 1 条评论
    1
  • xinn
    2022-11-16 来自美国
    1,在交互模式下明明是False呀?怎么同用啦? 2,而且“hello!”中不是还有!吗,不是只有字母?
    
    1
  • Geek_443d61
    2023-08-25 来自陕西
    number1 = -7 number2 = -7 print(number1 is number2)
    
    
  • Geek_219b52
    2023-07-19 来自浙江
    #使用浮点数或者较大的整数,实现内存驻留功能 import sys float1 = sys.intern("123.11") float2 = sys.intern("123.11") print(float1 is float2) num1 = sys.intern("10000") num2 = sys.intern("10000") print(num1 is num2)
    
    