Python字符串的驻留机制 |Python技能树征题

Python字符串的驻留机制

题目:在交互模式下,下列那个选项中,a,b,c三个变量没有共用同一片内存空间

请在以下选项中找出正确答案:

●A

a = panda
b = panda
c = panda

●B

a = panda
b = "panda"
c = panda

●C

a = panda%
b = panda%
c = panda%

●D

a =  
b =  
c =  

正确答案: C

答案解析: 在Python中字符串是基本数据类型,是一个不可变的字符序列,Python字符串的驻留机制,是仅保存一份相同且不可变字符串的方法,不同的值存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。

A选项中,三个变量的内容都是一样的,根据驻留机制定义,可知他们指向内存的标识也是一样的。 B选项中,无论是单引号还是双引号、三引号,这都是Python创建字符串的一种方式,不影响内容,他们指向内存的标识也是一样的。 C选项是正确答案,PyCharm等工具对字符串进行了优化处理,所以在PyCharm上运行时,C选项也是可以指向同一片内存空间的,但是题目要求在交互模式下,所以C答案错误。 D选项中,字符串的长度为0或1时,他们指向内存的标识也是一样的。

经验分享 程序员 微信小程序 职场和发展