在Python中,字符串是一种非常常见的数据类型,提供了丰富的操作和方法来处理文本数据。
字符串相关的操作示例代码如下:
# 字符串创建与拼接
s1 = "Hello"
s2 = 'Python'
s3 = s1 + " " + s2 # 拼接
print(s3) # 输出: Hello Python
# 三引号(单三引号 ''' 或双三引号 """)可以创建多行字符串,常用于包含换行符的文本。
s4 = """
This is a
multiline text
"""
print(s4)
# 上面的代码输出如下:
# This is a
# multiline text
# 索引与切片
# 字符串是不可变序列,可以通过索引访问单个字符,索引从 0 开始。
# 切片操作 [start:stop:step] 用于获取字符串的子串,start 是起始索引(包含),stop 是结束索引(不包含),step 是步长(可选,默认为 1)。
# 使用切片操作(start:end)访问子字符串,切片范围包含start但不包含end。
s = "Python"
print(s[0]) # 输出: P(正向索引,从0开始)
print(s[-1]) # 输出: n(反向索引,-1为最后一个字符)
print(s[2:5]) # 输出: tho(切片,包含索引2,不包含5)
print(s[:3]) # 输出: Pyt(从头到索引2)
print(s[3:]) # 输出: hon(从索引3到末尾)
print(s[::]) # 输出:Python
print(s[::-1]) # 输出:nohtyP
print(s[::3]) # 输出:Ph
print(s[::2]) # 输出:Pto
# 大小写转换
s = "Hello, Python"
print(s.upper()) # 输出:HELLO, PYTHON
print(s.lower()) # 输出:hello, python
# title方法将字符串中的每个单词的首字母转换为大写。
print(s.title()) # 每个单词首字母大写,输出:Hello, Python
# 分割与合并
# split方法将字符串分割成一个列表,指定分隔符。
# join方法将列表中的字符串连接成一个新的字符串,指定分隔符。
s = "apple,banana,orange"
# split() 方法根据指定的分隔符将字符串分割成一个列表,分隔符可以是任意字符串。
lst = s.split(",") # 按逗号分割为列表
print(lst) # 输出:['apple', 'banana', 'orange']
# 使用 + 运算符可以直接将两个或多个字符串拼接在一起,但频繁使用 + 拼接大量字符串效率较低。
# join() 方法是一种更高效的拼接方式,它将一个可迭代对象(如列表)中的字符串元素用指定的分隔符连接起来。
new_s = "-".join(lst)
print(new_s) # 输出:apple-banana-orange(用-合并列表元素)
# 去除空白符
# strip方法去除字符串两端的空白字符(包括空格、制表符、换行符等)。
s = " Python "
print(s.strip()) # 去除两端空白,输出:Python
print(s.lstrip()) # 去左端,输出:Python
print(s.rstrip()) # 去右端,输出: Python
# 查找与替换
s = "Hello Python"
# 使用 find() 方法查找子串, find() 方法用于查找子串在字符串中第一次出现的索引,如果找不到则返回 -1。
print(s.find("Py")) # 返回子串起始索引,未找到返回-1,包括空格,输出:6
print(s.index("lo")) # 类似find,但未找到会抛异常,输出:3
# replace方法返回一个新字符串,其中指定的子字符串被替换为另一个字符串。
print(s.replace("Hello", "Hi")) # 替换所有匹配项,输出:Hi Python
s1 = "Hello Python,hello world"
print(s1.replace("Hello", "Hi")) # 替换所有匹配项,输出:Hi Python,hello world
s2 = "Hello Python,Hello world"
print(s2) # s2字符串不变,输出:Hello Python,Hello world
print(s2.replace("Hello", "Hi")) # 替换所有匹配项,输出:Hi Python,Hi world
str9 = "Old String"
# 字符串是不可变的,不能直接修改,需要创建新的字符串
str10 = str9.replace("Old", "New")
print(str10) # 输出: New String
# 字符串格式化
name = "Alice"
age = 25
print(f"{name} is {age} years old.") # 输出:Alice is 25 years old.
print("{} is {} years old.".format(name, age)) # 输出:Alice is 25 years old.
print("%s is %d years old." % (name, age)) # 输出:Alice is 25 years old.
# 字符串检查
"""
isalpha方法判断字符串是否全为字母。
isdigit方法判断字符串是否全为数字。
isalnum方法判断字符串是否全为字母或数字。
"""
s = "Python123"
print(s.isalnum()) # 是否为字母/数字,输出:True
print(s.isalpha()) # 是否全为字母,输出:False
print(s.isdigit()) # 是否全为数字,输出:False
print(s.startswith("Py")) # 是否以Py开头,输出:True
print(s.endswith("23")) # 是否以23结尾,输出:True
# 长度与成员检查
s = "Python"
print(len(s)) # 字符串长度,输出:6
# 使用 in 关键字判断子串是否存在, in 关键字用于判断一个子串是否存在于字符串中,返回布尔值
print("th" in s) # 是否包含子串,输出:True
# 重复字符串,使用乘号*重复字符串。
print(s * 3) # 输出:PythonPythonPython
print('=' * 3) # 输出:===
# 转义字符
# 换行符
print("Line1\nLine2")
# 原始字符串(不转义)
# r前缀告诉Python,字符串中的\字符不应该被当作转义字符的引导,而是应该直接按照它们在字符串中的样子输出。
print(r"C:\path\to\file") # 输出:C:\path\to\file