python 切片實現trim函式(去除首尾空格)
阿新 • • 發佈:2019-01-30
轉自:http://blog.csdn.net/daniel960601需求:
Python 切片:利用切片操作,實現一個trim()函式,去除字串首尾的空格,不呼叫str的strip()方法。
更加美觀的是使用遞迴實現:
附測試資料:
Python 切片:利用切片操作,實現一個trim()函式,去除字串首尾的空格,不呼叫str的strip()方法。
在很多程式語言中,針對字串提供了很多各種擷取函式(例如,substring),其實目的就是對字串切片。Python沒有針對字串的擷取函式,只需要切片一個操作就可以完成各種擷取操作,非常方便。
要去除首尾的空格,只需要從頭到尾、從尾到頭各掃描一次,記錄兩端需要擷取的位置,去除兩端空格即可。
需要注意的是全是空格的情況。
def trim(s): length = len(s) if length > 0: for i in range(length): if s[i] != ' ': break; j = length-1; while s[j] == ' ' and j >= i: j -= 1 s = s[i:j+1] return s
更加美觀的是使用遞迴實現:
def trim(s):
if s[:1] != ' ' and s[-1:] != ' ':
return s
elif s[:1] == ' ':
return trim(s[1:])
else:
return trim(s[:-1])
附測試資料:
if trim('hello ') != 'hello': print('測試失敗!1') elif trim(' hello') != 'hello': print('測試失敗!2') elif trim(' hello ') != 'hello': print('測試失敗!3') elif trim(' hello world ') != 'hello world': print('測試失敗!4') elif trim('') != '': print('測試失敗!5') elif trim(' ') != '': print('測試失敗!6') else: print('測試成功!')