1. 程式人生 > >python中strip()函式的理解

python中strip()函式的理解

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’中,發現沒有,則將其返回,結束。

個人愚見,不知正確與否,若不正確,歡迎批評指正