MST

星途 面试题库

面试题:Python中字符串不可变特性对切片操作的影响

在Python中,已知字符串s = 'hello',执行s1 = s[1:3]后,s1的值是什么?并解释为什么这种切片操作没有改变原字符串s。从字符串不可变特性的角度进行阐述。
45.2万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

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