面试题答案
一键面试- s1的值:
s1
的值为'el'
。在Python中,切片操作s[1:3]
表示从索引1开始(包含索引1对应的字符),到索引3结束(不包含索引3对应的字符)。对于字符串s = 'hello'
,索引1对应的字符是'e'
,索引2对应的字符是'l'
,所以s[1:3]
得到'el'
。
- 为什么切片操作没有改变原字符串s:
- Python中的字符串具有不可变特性。这意味着一旦字符串对象被创建,其内容就不能被修改。当执行
s1 = s[1:3]
时,实际上是创建了一个新的字符串对象s1
,该对象的值是从原字符串s
中提取的部分字符组成的。原字符串s
本身并没有被修改,因为字符串不可变,任何对字符串看似修改的操作,实际上都是创建了一个新的字符串对象。例如,如果尝试s[1] = 'a'
,会抛出TypeError
,提示字符串对象不支持项分配,这进一步证明了字符串的不可变特性。而切片操作只是从原字符串提取部分内容构建新字符串,不会改变原字符串。
- Python中的字符串具有不可变特性。这意味着一旦字符串对象被创建,其内容就不能被修改。当执行