本文是廖雪峰Python教學(xué)切片章節(jié)的課后習(xí)題;
原題目是:
利用切片操作,實(shí)現(xiàn)一個(gè)trim()函數(shù)肴盏,去除字符串首尾的空格,注意不要調(diào)用str的strip()方法帽衙;
# 測(cè)試時(shí)調(diào)用trim函數(shù)菜皂,最后打印‘測(cè)試成功’,表明功能已經(jīng)實(shí)現(xiàn):
if trim('hello ') != 'hello':
print('測(cè)試失敗!')
elif trim(' hello') != 'hello':
print('測(cè)試失敗!')
elif trim(' hello ') != 'hello':
print('測(cè)試失敗!')
elif trim(' hello world ') != 'hello world':
print('測(cè)試失敗!')
elif trim('') != '':
print('測(cè)試失敗!')
elif trim(' ') != '':
print('測(cè)試失敗!')
else:
print('測(cè)試成功!')
本題實(shí)現(xiàn)思路是遞歸:trim(str)抽象意義就是移除首尾空格厉萝,那么添加判斷進(jìn)行遞歸即可
代碼如下:
#切片
#利用切片操作恍飘,實(shí)現(xiàn)一個(gè)trim()函數(shù),
#去除字符串首尾的空格谴垫,注意不要調(diào)用str的strip()方法:
#使用遞歸函數(shù)
def trim(str):
if(str==''):
return str
elif (str[0]!=' ')and(str[-1]!=' '):
return str
elif str[0]==' ':
return trim(str[1:])
else :
return trim(str[0:-1])
def main():
if trim('hello ') != 'hello':
print('測(cè)試失敗!')
elif trim(' hello') != 'hello':
print('測(cè)試失敗!')
elif trim(' hello ') != 'hello':
print('測(cè)試失敗!')
elif trim(' hello world ') != 'hello world':
print('測(cè)試失敗!')
elif trim('') != '':
print('測(cè)試失敗!')
elif trim(' ') != '':
print('測(cè)試失敗!')
else:
print('測(cè)試成功!')
if __name__ == '__main__':
main()