1、strip()函数
函数原型
声明:s为字符串,rm为要删除的字符序列
s.strip(rm) :删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm) :删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm) :删除s字符串中结尾处,位于 rm删除序列的字符
现在来分析s.strip(rm)这个函数。
- 现在假设s=‘abcd’
则 s.strip(‘bd’)————->’abc’- 而s.strip(‘ba’)和s.strip(‘ab’)的结果是一样的,都是’cd’
- 而s.strip(‘bd’)得到的结果是’abc’,于是我就不理解了
- 于是我继续尝试,发现s.strip(‘bac’)———->’d’
很多博客都是这样说明了下,然后就没有然后了,都没有解释到底是怎么工作的,为什么会产生这样的原因,不知是过于简单所以别人都没有进行讲解还是我过于笨拙,没能理解。
产生这样的原因我的理解如下:s.strip(rm)首先检查字符串s中的首尾字符是否在rm中,如存在则将字符从中删除,并用删除字符后的字符串继续检查首尾字符是否出现在rm中,如此下去,并返回最后的结果。
上面可能说的比较抽象,以上面的例子 s.strip(‘ba’)为例,经历了几下几步
- 第一步:字符串s=‘abcd’先检查其首尾字符是否出现在rm=’ba’中,发现首字符’a’存在于rm=’ba’中,于是将’abcd’中的’a’字符从中删除,得到’bcd’字符串
- 第二步:再继续检查所得字符串’bcd’的首尾字符是否出现在rm=’ba’中,发现首字符’b’存在,则将’bcd’中的字符’b’从中删除,得到’cd’字符串
- 第三步:再继续检查所得字符串’cd’中的首尾字符是否小狐仙在rm=’ba’中,发现没有,则将其返回,结束。
个人愚见,不知正确与否,若不正确,欢迎批评指正