1. 字符串基础概念与特性解析
字符串是Python中最基础也最常用的数据类型之一,它本质上是一系列Unicode字符的有序集合。与C语言等底层语言不同,Python中的字符串是不可变(immutable)对象,这意味着一旦创建就无法直接修改其中的字符。这种设计带来了内存安全和线程安全的天然优势。
在Python 3中,字符串默认采用Unicode编码(具体为UTF-8),这意味着我们可以直接在字符串中使用中文、emoji等各种字符:
python复制s = "你好,世界!🌍" # 合法字符串
字符串的不可变性可以通过以下例子理解:
python复制s = "hello"
s[0] = "H" # 抛出TypeError异常
要"修改"字符串,实际上需要创建新的字符串对象:
python复制s = "h" + s[1:] # 新建字符串"hello"
注意:频繁的字符串拼接操作会生成大量临时对象,在循环中尤其需要注意性能问题。这种情况下建议使用
join()方法或io.StringIO。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 字符串的创建与基本操作
2.1 字符串的多种创建方式
Python提供了多种字符串字面量表示方法:
python复制# 单引号
s1 = '这是一个字符串'
# 双引号(可以包含单引号)
s2 = "It's a string"
# 三引号(多行字符串)
s3 = """这是
多行
字符串"""
# 原始字符串(raw string,忽略转义)
path = r'C:\new_folder\test.txt'
# 字节字符串(bytes)
b = b'ASCII only'
2.2 字符串索引与切片
字符串支持类似列表的索引和切片操作:
python复制s = "Python字符串"
# 正向索引(从0开始)
print(s[0]) # 'P'
print(s[6]) # '字'
# 负向索引(从-1开始)
print(s[-1]) # '串'
# 切片操作[start:end:step]
print(s[2:5]) # 'tho'
print(s[::2]) # 'Pto字串'
print(s[::-1])
