1. 字符串基础与核心特性
字符串作为Python中最基础的数据类型之一,本质上是一个不可变的Unicode字符序列。在Python 3中,所有字符串默认采用UTF-8编码,这意味着我们可以直接在字符串中使用各种语言的字符和表情符号。比如text = "你好Hello😊"这样的混合字符串是完全合法的。
字符串的不可变性(immutable)特性值得特别注意。当我们执行看似"修改"字符串的操作时,实际上是创建了一个新的字符串对象。例如:
python复制s = "apple"
print(id(s)) # 输出内存地址1
s += " pie"
print(id(s)) # 输出不同的内存地址2
这种特性带来几个重要影响:
- 频繁的字符串拼接操作会带来性能问题,因为每次拼接都需要创建新对象
- 字符串可以作为字典的键使用,因为其不可变性保证了哈希值不变
- 多线程环境下操作字符串是线程安全的
提示:需要大量字符串拼接时,推荐使用
join()方法或io.StringIO,它们会显著优于直接使用+运算符。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 字符串创建与格式化技巧
2.1 多种创建方式对比
Python提供了多种字符串字面量表示方式,各有适用场景:
- 单引号
'str':最基础形式,适合简单字符串 - 双引号
"str":与单引号功能相同,便于包含引号的情况 - 三引号
'''str'''或"""str""":多行字符串,保留所有格式 - 原始字符串
r"str":忽略转义字符,适合正则表达式 - 字节字符串
b"str":处理二进制数据 - f-string
f"str":Python 3.6+的格式化字符串
2.2 现代字符串格式化实践
f-string是当前最推荐的字符串格式化方式,相比传统的%格式化和str.format(),它更直观高效:
python复制name = "Alice"
age = 25
# 传统方式
print("My name is %s, I'm %d years old" % (name, age))
# format方法
print("My name is {}, I'm {} years old".format(name, age)
