7. python字符串

2024-05-15

字符串处理

字符串是Python中最常用的数据类型之一。理解和掌握字符串处理方法是编写高效Python代码的基础。

1. 字符串创建与基本操作

  • 字符串可以使用单引号、双引号或三引号创建。
# 创建字符串
str1 = 'Hello'
str2 = "World"
str3 = '''This is
a multiline
string'''

print(str1)  # 输出 Hello
print(str2)  # 输出 World
print(str3)  # 输出 This is\n a multiline\n string

2. 字符串拼接

  • 可以使用加号(+)拼接字符串,使用乘号(*)重复字符串。
# 字符串拼接
greeting = str1 + ' ' + str2
print(greeting)  # 输出 Hello World

# 字符串重复
repeat_str = str1 * 3
print(repeat_str)  # 输出 HelloHelloHello

3. 字符串格式化

  • Python提供了多种字符串格式化方法,包括百分号格式化、str.format()方法和f字符串(格式化字符串字面量)。
name = "Alice"
age = 25

# 百分号格式化
print("Hello, %s. You are %d years old." % (name, age))

# str.format()方法
print("Hello, {}. You are {} years old.".format(name, age))

# f字符串(Python 3.6及以上)
print(f"Hello, {name}. You are {age} years old.")

4. 字符串索引与切片

  • 可以使用索引访问字符串中的单个字符,使用切片获取子字符串。
# 字符串索引
s = "Python"
print(s[0])  # 输出 P
print(s[-1])  # 输出 n

# 字符串切片
print(s[1:4])  # 输出 yth
print(s[:3])  # 输出 Pyt
print(s[3:])  # 输出 hon

5. 常用字符串方法

  • Python提供了许多内置的字符串方法,用于各种字符串操作。
s = "hello, world"

# 大小写转换
print(s.upper())  # 输出 HELLO, WORLD
print(s.lower())  # 输出 hello, world
print(s.capitalize())  # 输出 Hello, world
print(s.title())  # 输出 Hello, World

# 去除空白字符
s2 = "  hello  "
print(s2.strip())  # 输出 hello
print(s2.lstrip())  # 输出 hello  
print(s2.rstrip())  # 输出   hello

# 查找和替换
print(s.find("world"))  # 输出 7
print(s.replace("world", "Python"))  # 输出 hello, Python

# 拆分和连接
words = s.split(", ")
print(words)  # 输出 ['hello', 'world']
print(", ".join(words))  # 输出 hello, world

6. 字符串的不可变性

  • 字符串在Python中是不可变的,一旦创建,就不能修改其内容。任何对字符串的操作都会创建一个新字符串。
s = "hello"
s = s.replace("h", "y")
print(s)  # 输出 yello

7. 字符串的编码和解码

  • 可以使用encode()方法将字符串编码为字节,使用decode()方法将字节解码为字符串。
# 编码
s = "hello"
b = s.encode("utf-8")
print(b)  # 输出 b'hello'

# 解码
s2 = b.decode("utf-8")
print(s2)  # 输出 hello

8. 多行字符串和转义字符

  • 多行字符串可以使用三引号创建,转义字符用于表示特殊字符。
# 多行字符串
multi_line_str = """This is a
multiline
string"""
print(multi_line_str)

# 转义字符
escaped_str = "He said, \"Hello!\""
print(escaped_str)  # 输出 He said, "Hello!"