首页 新闻 会员 周边 捐助

strip() split()

0
[已解决问题] 解决于 2025-09-20 07:15
python strip()方法默认是去除空白么,不加任何参数
split()也是默认按照空格分割吗,不加任何参数
_java_python的主页 _java_python | 小虾三级 | 园豆:1050
提问于:2025-09-20 07:12
< >
分享
最佳答案
0
是的,两句话都对,但细节稍有区别,放在一起容易混,下面一次说清:
  1. str.strip() 不带参数
    默认去掉两端所有“空白字符”,按照 Unicode 的空白定义:
    空格 ' '、制表符 '\t'、换行 '\n'、回车 '\r'、垂直制表 '\v'、换页 '\f' 等全部算空白。
    等价于
    s.strip(' \t\n\r\v\f')
    str.split() 不带参数
    官方文档原话:
    “When no argument is given, … runs of consecutive whitespace are regarded as a single separator.”
    翻译:
    • 把任意长度“连续空白字符”整体当成一个分隔符;
    • 结果里永远不会出现空串;
    • 与显式给空格 split(' ') 完全不同——后者一个空格算一次分割,连续空格会产生空串。
    举例:
    >>> '  a\t\tb \n c '.split()
    ['a', 'b', 'c']          # 自动折叠所有空白,首尾忽略
    >>> '  a\t\tb \n c '.split(' ')
    ['', '', 'a\t\tb', '\n', 'c', '']  # 只认单个空格,空串保留
    • strip() 默认两端去空白(Unicode 空白集合)。
    • split() 默认按“连续空白整体”做分隔符,行为等价于 split(None),与 split(' ') 不是一回事。

    这种“默认行为”不是拍脑袋想出来的,而是把 90 % 以上“日常文本处理”需求直接做成零参数就能用,同时避免 99 % 的初学者踩坑。
    历史、兼容性、人机工程三条线交汇,才形成今天看到的:

    strip() → 去掉两端“所有空白”
    split() → 把“连续空白当一刀”

_java_python | 小虾三级 |园豆:1050 | 2025-09-20 07:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册