Python strip方法传入空字符串和空格返回结果不一致原因咨询
两段Python代码运行结果差异原因解析
核心差异来自strip()方法的入参规则不同,首先明确Python字符串内置str.strip(chars)方法的运行规则:
- 当
chars为空字符串''时,不存在需要匹配移除的字符,方法直接返回原字符串,不做任何修改 - 当
chars为非空字符串时,会将字符串内的每个字符作为移除目标,把原字符串首尾所有连续的、属于chars范围内的字符全部移除
代码1逻辑
line = ' dd-- -- ' len1 = len(line) line2 = line.strip('') len2 = len(line2) print(line) print(line2) print(len1) print(len2)
运行输出:
dd-- -- dd-- -- 16 16
这里strip传入了空字符串,所以line2和原字符串完全一致,长度自然都是16。
代码2逻辑
line = ' dd-- -- ' len1 = len(line) line2 = line.strip(' ') len2 = len(line2) print(line) print(line2) print(len1) print(len2)
运行输出:
dd-- -- dd-- -- 16 8
这里strip传入的是空格字符' ',原字符串开头的7个连续空格、末尾的1个空格都会被移除,剩下的dd-- --长度刚好为8,所以输出和代码1存在明显差异。
内容的提问来源于stack exchange,提问作者Ramu
相关产品推荐
相关产品推荐

