關于python刪除字符串是面試python測試開發工程師的一個經典問題。問題很簡單,但是一下子就能測試出來被面試者是否能夠熟練的進行python相關編碼工作!
對于有些臨時抱佛腳的同學來講,一看刪除,很自然就說用remove 、del相關方法,聽到這里,就知道面試者根本不知道這個答案啦!因為對于這個問題,remove 、del根本無效!有的同學回答:使用strip函數,很顯然這些同學對字符串api有些了解,但是對于面試官來說,我們能夠判斷出,這些同學編碼經驗有限!我們就先來了解一下strip函數。
Python 的 strip() 方法用于移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。實際工作中,只移除字符串開頭和結尾的部分字符應用場景極其有限。
例如代碼
str ="abc,ddd,ffff,ee"print(str.strip( 'ee' ))print(str.strip( 'abc' ))print(str.strip( 'ddd' ))
分別輸出:
abc,ddd,ffff,
,ddd,ffff,ee
abc,ddd,ffff,ee
可以看到strip對于刪除尾部的ee 和頭部的abc是能夠符合我們預期需求的,但是當刪除字符串中間的ddd,就會失??!
另外還有lstrip()、rstrip()函數和strip()函數的用法相似,只不過lstrip()是去掉左邊的(頭部),rstrip()是去掉右邊的(尾部)
那么我們應該怎樣解決刪除中間字符串這個問題呢?答案是用replace()函數!看到這里可能有的同學會說replace是替換的意思啊,怎么會用來進行刪除操作呢?沒錯,replace是進行替換操作的,但是如果我們把要刪除的字符串替換為空值,不就巧妙地解決了這個問題嘛!
print(str.replace( 'ddd','' ))
輸出:abc,,ffff,ee
完全符合預期!
隨著大家對python編碼的不斷深入,大家會遇到更復雜的需求:通過正則表達式來刪除字符串,那么該如何處理呢?跟據我多年的面試經驗來看,如果在面試過程中能夠回答出這個問題的同學,那么python編碼是過關的,應對python接口自動化測試或者UI自動化測試是能夠勝任的。在這里我也不啰嗦了,直接給大家答案,使用re.sub 函數即可,我們還是以字符串str ="abc,ddd,ffff,ee" 為例,用正則刪除字符串=",ddd,ffff," (這個正則應用的例子比較簡單,在這里我只是給大家來舉例如何使用正則的方法來刪除指定的字符串),代碼如下:
import restr ="abc,ddd,ffff,ee"print(re.sub(r',.*,', '', str))
輸出:abcee
符合預期!
通過strip()函數、replace()函數和re.sub ()函數大概率就可以評定出面試測試開發人員的基本python編碼能力,而且屢試不爽!
本文鏈接:http://www.tebozhan.com/showinfo-26-14620-0.htmlPython高頻面試題——如何在字符串中刪除指定字符
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com