Python 字符串是处理文本数据的基础,以下是关于字符串的所有基础知识:
1. 字符串定义
字符串是由字符组成的不可变序列,可用单引号、双引号或三引号定义:
str1 = '单引号字符串'
str2 = "双引号字符串"
str3 = '''三引号字符串,
可以换行'''
str4 = """双三引号字符串,
也可以换行"""
2. 字符串特性
- 不可变性:字符串创建后不能修改其内容
s = "hello" # s[0] = 'H' # 这会报错
- 序列特性:支持索引和切片操作
3. 字符串索引与切片
索引:从 0 开始,支持负索引(从末尾开始计数)
s = "python" print(s[0]) # 'p' print(s[-1]) # 'n'
切片:
s[start:end:step]
,包含 start 不包含 ends = "abcdefg" print(s[1:4]) # 'bcd' print(s[:3]) # 'abc' print(s[4:]) # 'efg' print(s[::2]) # 'aceg'(步长为2) print(s[::-1]) # 'gfedcba'(反转字符串)
4. 字符串拼接与重复
拼接:使用
+
运算符s1 = "Hello" s2 = "World" s3 = s1 + " " + s2 # "Hello World"
重复:使用
*
运算符s = "ab" * 3 # "ababab"
5. 字符串常用方法
大小写转换
s = "Hello World" print(s.upper()) # "HELLO WORLD" print(s.lower()) # "hello world" print(s.title()) # "Hello World"(每个单词首字母大写) print(s.capitalize()) # "Hello world"(仅第一个单词首字母大写) print(s.swapcase()) # "hELLO wORLD"(大小写互换)
查找与替换
s = "hello world" print(s.find("world")) # 6(返回子串起始索引,没找到返回-1) print(s.index("world")) # 6(类似find,但没找到会报错) print(s.count("l")) # 3(计数子串出现次数) print(s.replace("l", "x"))# "hexxo worxd"(替换子串)
判断与检查
s1 = "123" s2 = "abc" s3 = "Abc123" print(s1.isdigit()) # True(是否全为数字) print(s2.isalpha()) # True(是否全为字母) print(s3.isalnum()) # True(是否全为字母或数字) print(s2.islower()) # True(是否全为小写) print(s2.isupper()) # False(是否全为大写) print(s3.istitle()) # True(是否为标题格式) print(" ".isspace())# True(是否全为空白字符) print(s2.startswith("a")) # True(是否以指定字符串开头) print(s2.endswith("c")) # True(是否以指定字符串结尾)
格式化与对齐
s = "hello" print(s.center(10, "*")) # "**hello***"(居中对齐) print(s.ljust(10, "-")) # "hello-----"(左对齐) print(s.rjust(10, "-")) # "-----hello"(右对齐) print(s.zfill(10)) # "00000hello"(用0填充)
修剪与分割
s = " hello world " print(s.strip()) # "hello world"(去除首尾空白) print(s.lstrip()) # "hello world "(去除左侧空白) print(s.rstrip()) # " hello world"(去除右侧空白) s = "a,b,c,d" print(s.split(",")) # ["a", "b", "c", "d"](分割字符串) parts = ["a", "b", "c"] print("-".join(parts)) # "a-b-c"(连接列表为字符串)
6. 字符串格式化
% 格式化
name = "Alice" age = 30 print("Name: %s, Age: %d" % (name, age)) # "Name: Alice, Age: 30"
str.format() 方法
name = "Bob" age = 25 print("Name: {0}, Age: {1}".format(name, age)) # "Name: Bob, Age: 25" print("Name: {n}, Age: {a}".format(n=name, a=age)) # 关键字参数
f-字符串(Python 3.6+)
name = "Charlie" age = 35 print(f"Name: {name}, Age: {age}") # "Name: Charlie, Age: 35" print(f"Next year: {age + 1}") # 支持表达式
7. 特殊字符与转义
使用反斜杠
\
转义特殊字符print("He said \"Hello\"") # He said "Hello" print('It\'s a cat') # It's a cat print("First line\nSecond line") # 换行 print("Tab\tspace") # 制表符
原始字符串(不转义特殊字符)
print(r"C:\Users\Name") # 输出 C:\Users\Name,而不是转义后的结果
8. 字符串长度
使用 len()
函数获取字符串长度:
s = "hello"
print(len(s)) # 5
这些是 Python 字符串的核心基础知识,掌握它们可以帮助你有效地处理文本数据。在实际应用中,字符串方法的组合使用可以解决大多数文本处理问题。