← 返回首页
📝

字符串操作大全

📂 python ⏱ 2 min 344 words

字符串的创建

Python中字符串可以用单引号、双引号或三引号创建:

s1 = 'Hello'
s2 = "World"
s3 = '''这是
多行
字符串'''
s4 = """这也是
多行字符串"""

# 转义字符
tab_str = "姓名\t年龄\t城市"   # \t 制表符
new_line = "第一行\n第二行"     # \n 换行符
quote_str = "他说\"你好\""      # \" 双引号
backslash = "C:\\Users\\name"   # \\ 反斜杠

# 原始字符串(不处理转义)
path = r"C:\Users\new_folder"   # \n 不会被转义

字符串索引与切片

字符串是有序的字符序列,支持索引和切片:

text = "Python编程"

# 正向索引(从0开始)
print(text[0])    # 输出: P
print(text[6])    # 输出: 程

# 反向索引(从-1开始)
print(text[-1])   # 输出: 程
print(text[-3])   # 输出: 编

# 切片语法: 字符串[start:stop:step]
print(text[0:6])   # 输出: Python
print(text[:6])    # 省略start,默认从0开始
print(text[6:])    # 省略stop,默认到末尾
print(text[::2])   # 步长为2,每隔一个取一个
print(text[::-1])  # 反转字符串

注意:字符串是不可变的,不能通过索引赋值修改。

text = "Hello"
# text[0] = "h"  # 会报错!TypeError
text = "hello"     # 只能重新赋值

常用字符串方法

大小写转换

s = "hello, python"

print(s.upper())      # 转大写: HELLO, PYTHON
print(s.lower())      # 转小写: hello, python
print(s.title())      # 每个单词首字母大写: Hello, Python
print(s.capitalize()) # 首字母大写: Hello, python
print(s.swapcase())   # 大小写互换: HELLO, PYTHON

查找与替换

text = "Hello, World! Hello, Python!"

print(text.find("Hello"))      # 返回首次出现的索引: 0
print(text.find("Hello", 5))   # 从索引5开始查找: 13
print(text.find("Java"))       # 未找到返回: -1
print(text.count("Hello"))     # 出现次数: 2
print(text.replace("Hello", "Hi"))  # 替换所有: Hi, World! Hi, Python!

分割与合并

# 分割字符串
csv_data = "张三,25,北京"
parts = csv_data.split(",")   # 按逗号分割
print(parts)  # ['张三', '25', '北京']

text = "Hello   World   Python"
words = text.split()  # 默认按空白字符分割
print(words)  # ['Hello', 'World', 'Python']

# 合并字符串
words = ["Python", "是", "最好的", "语言"]
sentence = "".join(words)
print(sentence)  # Python是最好的语言

# 用分隔符连接
result = " - ".join(["2024", "01", "15"])
print(result)  # 2024 - 01 - 15

判断方法

s1 = "12345"
s2 = "hello"
s3 = "  "

print(s1.isdigit())     # 是否全是数字: True
print(s2.isalpha())     # 是否全是字母: True
print(s1.isalnum())     # 是否全是字母或数字: True
print(s3.isspace())     # 是否全是空白字符: True
print(s2.startswith("he"))  # 是否以"he"开头: True
print(s2.endswith("lo"))    # 是否以"lo"结尾: True

空白处理

s = "  Hello, World!  "

print(s.strip())     # 去除首尾空白: "Hello, World!"
print(s.lstrip())    # 去除左侧空白: "Hello, World!  "
print(s.rstrip())    # 去除右侧空白: "  Hello, World!"
print(s.strip(" H!"))  # 去除指定字符: "ello, World"

字符串格式化

Python提供了多种字符串格式化方式:

f-string(推荐)

name = "小明"
age = 25
score = 95.5

# 基本用法
print(f"姓名: {name}, 年龄: {age}")

# 表达式
print(f"明年 {age + 1} 岁")

# 格式化数字
print(f"分数: {score:.1f}")    # 保留一位小数: 95.5
print(f"百分比: {0.856:.1%}")  # 百分比格式: 85.6%
print(f"金额: {1234567:,}")    # 千位分隔: 1,234,567

format方法

# 位置参数
print("{}的成绩是{}".format("小明", 95))

# 命名参数
print("{name}今年{age}岁".format(name="小明", age=25))

# 格式化
print("{:.2f}".format(3.14159))  # 3.14

% 格式化(旧式)

name = "小明"
age = 25
print("姓名: %s, 年龄: %d" % (name, age))

字符串编码

Python3中字符串默认使用UTF-8编码:

# 编码与解码
s = "你好,Python"

# 转为字节
b = s.encode("utf-8")
print(b)  # b'\xe4\xbd\xa0\xe5\xa5\xbd...'

# 解码回字符串
text = b.decode("utf-8")
print(text)  # 你好,Python

# 获取字符串长度
print(len(s))        # 字符数: 9
print(len(b.encode("utf-8")))  # 字节数

总结

字符串是Python中最常用的数据类型之一。掌握了字符串的索引、切片、方法和格式化后,你就能高效地处理各种文本数据。下一节我们将学习条件语句,让程序具备逻辑判断能力。