Python字符串操作完全指南
Python字符串基础
在Python中,字符串是处理文本信息的基础数据类型。掌握字符串操作原理对于高效编程至关重要。
字符串作为str类型对象
Python中的字符串是内置str类型的对象,代表Unicode字符序列。每个字符串都支持大量内置方法用于文本处理。字符串支持通过索引访问单个字符,也支持比较和排序操作。
text = "Python"
print(type(text)) # <class 'str'>
print(len(text)) # 6
字符串的不可变性
Python中的字符串是不可变对象。这意味着任何转换操作都会创建一个新字符串,原始字符串保持不变。这一原则确保了数据安全性和代码可预测性。
original = "hello"
modified = original.upper()
print(original) # 'hello' - 原字符串不变
print(modified) # 'HELLO' - 新字符串
创建字符串的多种方式
Python提供了多种创建字符串的方法:
- 单引号用于简单字符串
- 双引号用于包含撇号的字符串
- 三引号用于多行文本
- 原始字符串用于转义特殊字符
single = '简单字符串'
double = "包含'撇号'的字符串"
multiline = """第一行
第二行
第三行"""
raw = r"文件\路径"
字符串索引与切片操作
访问字符串中的字符
字符串中的每个字符都有对应的索引,索引从0开始。Python同时支持正向索引和负向索引。
text = "Python"
print(text[0]) # 'P' - 第一个字符
print(text[5]) # 'n' - 最后一个字符
print(text[-1]) # 'n' - 通过负索引访问最后一个字符
print(text[-6]) # 'P' - 通过负索引访问第一个字符
字符串切片操作
切片可以从原始字符串中提取子串。切片语法:字符串[起始:结束:步长]。起始索引包含在内,结束索引不包含。
text = "Python Programming"
print(text[1:4]) # 'yth'
print(text[:6]) # 'Python'
print(text[7:]) # 'Programming'
print(text[::2]) # 'Pto rgamn' - 每隔一个字符
print(text[::-1]) # 'gnimmargorP nohtyP' - 字符串反转
负索引的实际应用
负索引简化了字符串末尾的操作,在处理文件和变长数据时特别有用。
filename = "document.pdf"
extension = filename[-4:] # '.pdf'
name_part = filename[:-4] # 'document'
字符串查找方法
基础子串查找方法
find()方法返回子串首次出现的索引。如果未找到子串,返回-1。rfind()方法从字符串末尾开始查找。
text = "banana programming"
print(text.find("ana")) # 1
print(text.find("python")) # -1 (未找到)
print(text.rfind("ana")) # 3
print(text.find("a", 2)) # 3 (从索引2开始查找)
带异常处理的严格查找方法
index()和rindex()方法与find()类似,但如果未找到子串,会抛出ValueError异常。
text = "banana"
print(text.index("n")) # 2
# print(text.index("z")) # ValueError: substring not found