创建时间: 2026-08-25最后更新: 2026-08-25

1. 文本

字符串是由一串字符组成的文本数据。用户名、提示词、文件路径、接口地址和模型回复,通常都会以字符串的形式出现。

Python 可以使用单引号或双引号创建字符串:

create.py
1
name = '小明'
2
message = "欢迎学习 Python"
3
4
print(name)
5
print(message)

单引号和双引号没有本质区别,选择一种并在项目中保持一致即可。如果字符串本身包含某种引号,可以使用另一种引号包裹:

quotes.py
1
title = "这是一段包含 '单引号' 的文本"
2
sentence = '他说:"你好"'
3
4
print(title)
5
print(sentence)

如果文本中同时包含单引号和双引号,或者需要保留多行格式,可以使用三引号:

multiline.py
1
description = """这是第一行。
2
这是第二行。
3
这是第三行。"""
4
5
print(description)

反斜杠可以表示特殊字符。常见的转义字符包括 \n 换行、\t 制表符和 \\ 反斜杠本身:

escape.py
1
text = "第一行\n第二行\t缩进文本"
2
3
print(text)

如果 Windows 路径或正则表达式中有很多反斜杠,可以使用原始字符串,在字符串前加 r:

raw.py
1
path = r"C:\Users\xiaoming\notes"
2
3
print(path)

2. 索引

字符串中的每个字符都有位置。Python 从 0 开始计算位置,第一个字符的索引是 0:

index.py
1
word = "Python"
2
3
print(word[0]) # P
4
print(word[1]) # y
5
print(word[5]) # n

也可以使用负数索引从字符串末尾开始查找,-1 表示最后一个字符:

negative-index.py
1
word = "Python"
2
3
print(word[-1]) # n
4
print(word[-2]) # o

切片用于截取一段字符串,基本形式是 text[start:stop]。开始位置包含在结果中,结束位置不包含:

slice.py
1
word = "Python"
2
3
print(word[0:2]) # Py
4
print(word[2:]) # thon
5
print(word[:4]) # Pyth
6
print(word[:]) # Python

切片还可以指定步长 text[start:stop:step]:

slice-step.py
1
word = "Python"
2
3
print(word[::2]) # Pto
4
print(word[::-1]) # nohtyP

索引超出范围会抛出 IndexError,所以读取不确定长度的文本时要先判断长度,或者使用切片:

safe-index.py
1
text = "Hi"
2
3
if len(text) > 5:
4
print(text[5])
5
6
print(text[:6]) # Hi,切片不会因为结束位置过大而报错

字符串是不可变对象。不能直接修改其中的某个字符,应该根据原字符串创建一个新字符串:

immutable.py
1
word = "Python"
2
3
# word[0] = "J" # TypeError
4
word = "J" + word[1:]
5
6
print(word) # Jython

3. 方法

字符串提供了许多常用方法,用于清理、查找和替换文本。字符串方法不会修改原字符串,而是返回处理后的新字符串。

方法用途示例
lower()转换为小写text.lower()
upper()转换为大写text.upper()
strip()删除两端空白text.strip()
replace()替换文本text.replace("旧", "新")
startswith()判断开头text.startswith("前缀")
endswith()判断结尾text.endswith(".py")
find()查找位置text.find("Python")
count()统计出现次数text.count("a")

下面是几个最常见的清理和转换方法:

methods.py
1
text = " Hello, Python! "
2
3
print(text.lower()) # hello, python!
4
print(text.upper()) # HELLO, PYTHON!
5
print(text.strip()) # Hello, Python!
6
print(text.replace("Python", "AI")) # Hello, AI!

strip() 默认删除字符串两端的空白,也可以指定要删除的字符。它不会删除中间的空格:

strip.py
1
text = "---Python---"
2
3
print(text.strip("-")) # Python

查找和判断方法经常用于输入校验:

search.py
1
email = "user@example.com"
2
3
print("@" in email) # True
4
print(email.startswith("user")) # True
5
print(email.endswith(".com")) # True
6
print(email.find("@")) # 4
7
print(email.find("#")) # -1

find() 找不到内容时返回 -1。如果只需要判断是否包含某段文本,使用 in 通常更容易读懂:

contains.py
1
question = "如何使用 LangChain?"
2
3
if "LangChain" in question:
4
print("这是一个 LangChain 相关问题")

4. 拆分

split() 可以按照分隔符把一个字符串拆成列表。默认按照空白字符拆分:

split.py
1
sentence = "Python 适合构建 AI 应用"
2
words = sentence.split()
3
4
print(words)

也可以指定逗号、换行等分隔符:

split-separator.py
1
value = "Python,FastAPI,LangChain"
2
items = value.split(",")
3
4
print(items) # ['Python', 'FastAPI', 'LangChain']

拆分后常常需要清理每一项的空格:

clean-items.py
1
value = "Python, FastAPI, LangChain"
2
items = [item.strip() for item in value.split(",")]
3
4
print(items)

join() 与 split() 相反,它使用一个字符串把多个字符串连接起来。调用 join() 的对象是分隔符,而不是列表:

join.py
1
items = ["Python", "FastAPI", "LangChain"]
2
3
text = " / ".join(items)
4
print(text) # Python / FastAPI / LangChain

join() 要求列表中的每个元素都是字符串。列表里有数字时,需要先转换类型:

join-numbers.py
1
numbers = [1, 2, 3]
2
text = ", ".join(str(number) for number in numbers)
3
4
print(text) # 1, 2, 3

5. 格式

字符串拼接可以使用 +,但当文本中包含多个变量时,f-string 通常更清晰。只需要在字符串前加 f,再把变量写入 {}:

f-string.py
1
name = "小明"
2
age = 18
3
4
message = f"{name} 今年 {age} 岁"
5
print(message)

大括号中也可以放表达式:

expression.py
1
price = 39.9
2
quantity = 2
3
4
print(f"合计:{price * quantity} 元")

金额、百分比和统计结果经常需要控制显示格式。:.2f 表示保留两位小数:

format-number.py
1
price = 39.9
2
rate = 0.85
3
4
print(f"价格:{price:.2f} 元")
5
print(f"折扣:{rate:.0%}")

f-string 也可以调用方法,但表达式太复杂时,应该先保存到变量,再放进字符串:

format-text.py
1
name = " 小明 "
2
clean_name = name.strip()
3
4
print(f"用户:{clean_name}")

6. 转换

input() 返回的内容总是字符串,即使用户输入的是数字。需要进行计算或比较时,应当先显式转换:

input.py
1
age_text = input("请输入年龄:")
2
age = int(age_text)
3
4
if age >= 18:
5
print("已成年")

常见的类型转换方法包括 str()、int() 和 float():

convert.py
1
number = 18
2
price_text = "39.9"
3
4
message = str(number)
5
price = float(price_text)
6
count = int("3")
7
8
print(message)
9
print(price * count)

转换可能失败。例如,int("十八") 无法得到整数,会抛出 ValueError。处理用户输入或外部接口数据时,应使用异常处理或 Pydantic 校验:

safe-convert.py
1
value = "十八"
2
3
try:
4
age = int(value)
5
except ValueError:
6
age = None
7
8
print(age)

字符串还经常用于比较和查找,但大小写可能导致看似相同的内容比较失败。需要忽略大小写时,可以先统一转换:

case-insensitive.py
1
keyword = "Python"
2
query = "python 教程"
3
4
if keyword.lower() in query.lower():
5
print("找到了关键词")
正在验证登录状态
请稍候,验证完成后将继续显示文章内容