Python中strip(),lstrip(),rstrip()函數的講解

1. strip()

它的函數原型:string.strip(s[, chars]),它返回的是字符串的副本,並刪除前導和後綴字符。(意思就是你想去掉字符串裏面的哪些字符,那麼你就把這些字符當參數傳入。此函數只會刪除頭和尾的字符,中間的不會刪除如果strip()的參數爲空,那麼會默認刪除字符串頭和尾的空白字符(包括\n,\r,\t這些)。

#這裏注意字符串a的兩端都有一個空白字符,字符a和n之間也有一個。
a=" \rzha ng\r\t "
for a1 in a:
  print(a1)
print(len(a))

b=a.strip()
print(b)
print(len(b))


輸出
 

z
h
a
 
n
g

	
 
11
zha ng
6

當參數爲空的時候,兩端的空白符,\r,\n,\t都被刪除了,但是中間的那個空白符沒動。我們看下當有參數的時候是什麼情況:

a="rrbbrrddrr"
b=a.strip("r")
print(b)

輸出:bbrrdd

中間的字符r沒動,兩端的都刪除了,現在來看看我們傳入多個字符參數的情況:

a="aabcacb1111acbba"
print(a.strip("abc"))
print(a.strip("acb"))
print(a.strip("bac"))
print(a.strip("bca"))
print(a.strip("cab"))
print(a.strip("cba"))

輸出:
1111
1111
1111
1111
1111
1111

從這個代碼看出什麼了嗎?可能和你想的不一樣,當你傳的參數不管是“abc”還是abc的其他排列形式,這都不重要,重要的是函數只知道你要刪除的字符是'a','b','c'。函數會把你傳的參數拆解成一個個的字符,然後把頭尾的這些字符去掉。

總結:

     1.如果strip()的參數爲空,那麼會默認刪除字符串頭和尾的空白字符(包括\n,\r,\t這些),中間的空格什麼的不會被刪除

     2.有參數的時候,刪除兩端的,中間的不會動

     3.多個參數的時候,不管參數的排列順序,會將參數拆成每一個字符,兩端有的都會被刪除

2. lstrip()和rstrip() 

這兩個函數和上面的strip()基本是一樣的,參數結構也一樣,只不過一個是去掉左邊的(頭部),一個是去掉右邊的(尾部)。

a=" zhangkang "
print(a.lstrip(),len(a.lstrip()))
print(a.rstrip(),len(a.rstrip()))

輸出
zhangkang  10
 zhangkang 10

當沒有參數的時候,一個去掉了左邊的空白,一個去掉了右邊的空白。

當傳參數的時候:

a="babacb111baccbb"
print(a.lstrip("abc"))
print(a.rstrip("abc"))

輸出:
    111baccbb
    babacb111

總結:

      當沒有參數的時候:lstrip刪除左邊的空白符,rstrip刪除右邊的空白符

      當傳參數的時候:lstrip刪除左邊的每一個含有參數字符的字符,rstrip刪除右邊每一個含有參數字符的字符

發佈了148 篇原創文章 · 獲贊 113 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章