2-7编程练习的疑惑

2-7编程练习的疑惑

假如在这个练习上扩展一下 定义的两个变量都是字符串“2020”,相比较为什么两者都为True ,定义两个字符串不应该开辟两块地址吗,所以两者的内存地址比较应该为False啊 ?但运行结果出乎意料 感到非常疑惑,请求老师解答

http://img1.sycdn.imooc.com//climg/5ca734a10001a98a09710208.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。

在Python中,针对短小的字符串,解释器都会缓存这些字符串对象,以便重复使用。当我们创建多个值为‘2020’的引用时,str1和str2这两个引用都指向了值为'2020'的内存空间。因此,str1 == str2和str1 is str2的值都为True。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~~


  • 慕先生0475895 提问者 #1
    老师 经过后面的的学习 这两者实际上比较的是hash值 我的理解是正确的嘛?
    2019-04-06 14:51:47
  • 慕之熠_灿烈 回复 提问者 慕先生0475895 #2
    同学,你好。 关于二者的比较的原理,你的理解是正确的。因为所比较的数据的哈希值是相同的,所以对应的结果为True。 如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~~
    2019-04-08 10:06:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师