






















Python 3 中的字符串(str)是Unicode 字符序列,用于表示文本数据。与 Python 2 不同,Python 3 不再区分 str 和 unicode,所有文本字符串都是 Unicode 原生支持的,这使得处理多语言和特殊符号变得非常自然。下面是关于 Python 3 字符串的全面概览,涵盖创建、操作、格式化、编码等核心内容。
字符串可以使用单引号、双引号或三引号(多行)定义:
s1 = 'Hello'
s2 = "World"
s3 = '''多行
字符串'''
s4 = """也可用双引号"""
三引号会保留内部的换行和缩进。
反斜杠 \ 用于转义特殊字符(如 \n 换行,\t 制表符)。若希望字符串原样输出(例如文件路径、正则表达式),可使用原始字符串,前缀为 r:
path = r'C:\Users\name' # 反斜杠不被转义
字符串一旦创建,不能修改其中的单个字符。任何看似“修改”的操作(如拼接、替换)都会生成新的字符串对象,这在性能和内存方面需要注意。
s[0] 获取第一个字符,s[-1] 获取最后一个。s[start:end:step] 返回子串(包含 start,不包含 end)。+ 或 ' '.join(list)(推荐用 join 拼接多个片段,效率更高)。s * 3。'a' in s 或 'abc' not in s。len(s)。Python 字符串提供了丰富的方法,所有方法都返回新字符串(因为不可变):
.upper(), .lower(), .capitalize(), .title(), .swapcase().strip()(两侧)、.lstrip()、.rstrip().find(sub), .index(sub), .replace(old, new), .count(sub).isalpha(), .isdigit(), .isalnum(), .isspace(), .startswith(prefix), .endswith(suffix).split(sep) → 列表,.join(iterable) → 字符串(高效拼接).center(width), .ljust(), .rjust(), .zfill(width)示例:
text = " Hello, World! "
print(text.strip()) # "Hello, World!"
print(text.split(',')) # [' Hello', ' World! ']
print('-'.join(['a','b'])) # 'a-b'
Python 3 支持多种格式化方式:
% 格式化(旧式):
"Hello, %s!" % "Alice" # "Hello, Alice!"
"Age: %d" % 25 # "Age: 25"
.format() 方法(推荐在 3.6 之前):
"Hello, {}!".format("Bob") # 位置参数
"Name: {name}, Age: {age}".format(name="Eve", age=30) # 关键字参数
f-string(格式化字符串字面量)(Python 3.6+,最推荐):
在字符串前加 f,直接使用花括号嵌入变量或表达式:
name = "Charlie"
age = 28
print(f"Name: {name}, Age: {age}, Next year: {age+1}")
bytes 与 str 的转换)str.encode(encoding='utf-8') → 返回 bytes 对象。bytes.decode(encoding='utf-8') → 返回 str。s = "中文"
b = s.encode('utf-8') # b'\xe4\xb8\xad\xe6\x96\x87'
s2 = b.decode('utf-8') # "中文"
Python 3 默认使用 UTF-8 编码,但最好明确指定。
str(字节串)和 unicode(文本串),Python 3 统一为 str(Unicode)。'中' 是字节串,需加 u 前缀表示 Unicode;Python 3 中普通字符串就是 Unicode。open() 默认以文本模式读写,自动进行编码转换(可通过 encoding 参数控制)。é)可由单个码点或组合字符表示,使用 unicodedata.normalize() 可统一形式,便于比较。len(s) 返回 Unicode 码点个数,不是字节数。若需要字节长度,需先编码。join 或 io.StringIO。\uXXXX 或 \UXXXXXXXX 表示任意 Unicode 字符。Python 3 的字符串是强大且易用的 Unicode 文本容器,结合丰富的内置方法和现代格式化工具(f-string),让文本处理变得高效、清晰。理解其不可变性和编码机制是避免常见陷阱的关键。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。