
本文共 3873 字,大约阅读时间需要 12 分钟。
Python 字符串操作指南
目录
- 4.1 创建字符串
- 4.2 字符串的不可变性
- 4.3 字符串操作
- 4-4 字符串分片
- 4.5 in 和 not in 操作符
- 4.6 字符串对象方法
- 4.7 比较字符串
- 4.8 遍历字符串
- 4.9 字符串内容检验
- 4.10 在字符串内查找和替换
- 4.11 设置字符串的格式
- 4.12 替换字段名
- 4.13 宽度、精度和千位分隔符
- [4.14 符号、对齐和用 0 填充](#4-14-符号、对齐和用 0 填充)
- [4.15 join 方法](#4-15-join 方法)
- [4.16 split 方法](#4-16-split 方法)
4.1 创建字符串
字符串是 Python 中的基本数据类型,用于存储和操作文本或其他字符。字符串可以用单引号或双引号括起来,例如:
name = "tom" # 或 name = 'tom'mychar = 'a'
也可以通过以下方法创建字符串:
str()
创建一个空字符串str("newstring")
创建一个包含 "newstring" 的字符串
示例:
name1 = str() # 创建一个空字符串name2 = str("newstring") # 创建一个新字符串
4.2 字符串的不可变性
在 Python 中,字符串是不可变的。这意味着一旦一个字符串创建完成,它的内容无法更改。例如:
s = 'string'print(len(s)) # 输出:6print(s[0]) # 输出:'s'# s[0] = 'another s' # 会导致错误:'str'对象不支持下标赋值
虽然字符串是不可变的,但可以通过以下方式创建新字符串:
str1 = 'welcome'str2 = 'welcome'
通过 id()
函数可以发现,两个变量实际上引用的是同一个字符串对象。但如果对其内容进行操作(例如 str1 += ' yangjh'
),则会创建一个新字符串。
4.3 字符串操作
字符串操作包括访问字符、连接字符串、提取子串和查找子串。以下是常用的操作:
索引:字符串索引从 0 开始,支持正向和逆向访问。
name = 'yangjh'print(name[0]) # 输出:'y'print(name[-1]) # 输出:'h'
运算符:使用 + 连接字符串,使用 * 重复字符串。
s = "tom and " + "jerry"print(s) # 输出:'tom and jerry's = "love " * 3print(s) # 输出:'love love love'
分片:使用 [] 操作符提取子串。
s = 'Welcome'print(s[1:3]) # 输出:'el'print(s[:6]) # 输出:'Welcome'print(s[4:]) # 输出:'ome'print(s[1:-1]) # 输出:'elc'
4.4 字符串分片
字符串分片可以通过指定开始和结束索引来提取子串:
s[start:end]
返回从start
索引(含)到end
索引(不含)之间的子串。s = 'Welcome to Python'print(s[5:10]) # 输出:'to 'print(s[:5]) # 输出:'Welcome'print(s[10:]) # 输出:'Python'
4.5 in 和 not in 操作符
in 和 not in 操作符用于检查字符串中是否存在某个字符或子串。
s1 = "Welcome to Python"print("come" in s1) # 输出:Trueprint("come" not in s1) # 输出:False
4.6 字符串对象的方法
字符串对象提供了多种内置方法来操作和分析字符串内容:
- 常用方法示例:
s = "welcome to python"print(len(s)) # 输出:16print(max(s)) # 输出:'t'print(min(s)) # 输出:' '
4.7 比较字符串
Python 支持对字符串进行逐字符比较,使用 <
、>
、<=
、>=
、==
和 !=
运算符比较两个字符串。
示例:
print("tim" == "tie") # 输出:Falseprint("free" != "freedom") # 输出:Trueprint("arrow" > "aron") # 输出:Trueprint("green" >= "glow") # 输出:Trueprint("green" < "glow") # 输出:Falseprint("ab" <= "abc") # 输出:True
4.8 遍历字符串
字符串可以看作是一个序列,支持通过循环遍历访问每个字符。
s = "yangjh"for i in s: print(i, end="")print() # 输出:yangjh
4.9 字符串内容检验
字符串提供了多种方法来判断字符串的性质:
- 示例:
s = "welcome to python"print(s.isalnum()) # 输出:Falseprint("Welcome".isalpha()) # 输出:Trueprint("2012".isdigit()) # 输出:Trueprint("first Number".isidentifier()) # 输出:Falseprint("Welcome".islower()) # 输出:Trueprint("WELCOME".isupper()) # 输出:Trueprint(" \t".isspace()) # 输出:True
4.10 在字符串内查找和替换
字符串支持 find()
和 replace()
方法:
find()
返回首次出现指定子串的索引。print(s.find('in')) # 输出:4print(s.replace('g', 'gs')) # 替换后 s 变为 " Mig singh"
4.11 设置字符串的格式
使用 format()
方法可以按格式设置字符串内容。
- 示例:
format = "Hello, %s. %s enough for ya?"values = ('world', 'Hot')print(format % values) # 输出:"Hello, world. Hot enough for ya?"
4.12 替换字段名
format()
方法还支持通过名称或索引指定替换字段。
- 示例:
print("{foo} {} {bar} {}".format(1, 2, bar=4, foo=3)) # 输出:"3 1 4 2"print("{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3)) # 输出:"3 2 4 1"
4.13 宽度、精度和千位分隔符
使用格式说明符可以设置字符串的宽度和精度。
- 示例:
print("{num:10}".format(num=3)) # 输出:" 3"print("{name:10}".format(name="Bob ")) # 输出:"Bob "print("{:.5}".format("Guido van Rossum")) # 输出:"G"
4.14 符号、对齐和用 0 填充
格式说明符还可以设置符号、对齐和填充方式。
- 示例:
print("{:010.2f}".format(pi)) # 输出:"0000003.14"print("{0:<10.2f}\n{0:^10.2f}\n{0:>10.2f}".format(pi)) # 输出: 3.14 3.14 3.14
4.15 join 方法
join 方法用于将列表中的元素合并成一个字符串。
seq = [1, 2, 3, 4, 5]sep = '+'sep.join(seq) # 会报错,因为 int 不是字符串
示例正确使用:
seq = ['1', '2', '3', '4', '5']print('+'.join(seq)) # 输出:"1+2+3+4+5"
4.16 split 方法
split 方法用于将字符串拆分成列表。
s = '1+2+3+4+5'.split('+') # 输出:['1', '2', '3', '4', '5']
如果没有指定分隔符,默认在空白字符处拆分。
print("Using the default".split()) # 输出:['Using', 'the', 'default']
下一步
通过以上内容,你应该已经掌握了 Python 字符串的基本操作。如果需要更深入的学习,可以继续探索更多字符串方法和功能,或者参考官方文档和实战练习。
发表评论
最新留言
关于作者
