You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中str.strip()默认去除的完整符号列表是什么?

Python中str.strip()默认去除的完整空白字符列表

Python的str.strip()默认情况下会移除所有Unicode标准定义的空白字符,这些字符的共同特征是调用str.isspace()方法会返回True,范围比string.whitespace包含的ASCII空白字符更广。

具体包含的字符分类:

  1. ASCII范畴空白字符(对应string.whitespace的内容):

    • 空格:' '(ASCII 32)
    • 制表符:'\t'(ASCII 9)
    • 换行符:'\n'(ASCII 10)
    • 回车符:'\r'(ASCII 13)
    • 垂直制表符:'\v'(即'\x0b',ASCII 11)
    • 换页符:'\f'(即'\x0c',ASCII 12)
  2. 扩展Unicode空白字符:

    • 下一行:'\x85'(Unicode C1控制符)
    • 文件分隔符:'\x1c'(ASCII 28)
    • 组分隔符:'\x1d'(ASCII 29)
    • 记录分隔符:'\x1e'(ASCII 30)
    • 单元分隔符:'\x1f'(ASCII 31)
    • 行分隔符:'\u2028'(Unicode专用换行符)
    • 段落分隔符:'\u2029'(Unicode专用段落分隔符)

验证逻辑

你可以通过以下代码验证任意字符是否会被strip()默认移除:

def is_stripped_char(c):
    return len(c.strip()) == 0

# 测试示例字符
test_chars = [' ', '\t', '\n', '\r', '\v', '\f', '\x85', '\x1c', '\x1d', '\x1e', '\x1f', '\u2028', '\u2029']
for c in test_chars:
    print(f"字符 {repr(c)} 是否会被strip移除: {is_stripped_char(c)}")

运行后所有测试字符都会返回True,说明它们都会被默认的strip()移除。

为什么和string.whitespace有差异?

string.whitespace仅包含ASCII标准下的空白字符,而str.strip()的默认行为遵循Unicode标准,覆盖了更多用于文本分隔的空白类字符,这也是为什么你测试'\t\n\r\f\x85\x1c\x1d\v\u2028\u2029'.strip()会得到空字符串的原因。

内容的提问来源于stack exchange,提问作者Vasyl Kolomiets

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:51:11