python strip()方法默认是去除空白么,不加任何参数
split()也是默认按照空格分割吗,不加任何参数
str.strip() 不带参数' '、制表符 '\t'、换行 '\n'、回车 '\r'、垂直制表 '\v'、换页 '\f' 等全部算空白。s.strip(' \t\n\r\v\f')
str.split() 不带参数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() → 把“连续空白当一刀”