为什么str.strip()自动去除所有转义字符?
对一个字符串进行取样:
a = ' \r\rwww someString www\r\r\n\n '
然后取样以下两个结果。
[In]: a.strip()
[Out]: 'www someString www'
[In]: a.strip('w ')
[Out]: '\r\rwww someString www\r\r\n\n'
Python文档中关于str.strip([chars])的说明是:
如果省略或为None,chars参数默认会去掉空白字符
为什么它也会去掉所有的转义字符呢?
1 个回答
10
它的功能正是如此:去掉字符串开头和结尾的字符。
示例字符串:
a = ' \r\rwww someString www\r\r\n\n '
这个示例去掉了开头和结尾的空白:
[In]: a.strip()
[Out]: 'www someString www'
\r
和 \n
是空白字符,所以它们会被去掉。
这个示例去掉了开头和结尾的 w
或者空格(字符32);但是它不会去掉 \r
或 \n
这些空白字符:
[In]: a.strip('w ')
[Out]: '\r\rwww someString www\r\r\n\n'
因为它没有去掉 \r
或 \n
,所以 www
保持不变。
在这两种情况下,字符串内部的空格都没有被动。