本文是廖雪峰Python教学切片章节的课后习题;
原题目是:
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法;
# 测试时调用trim函数,最后打印‘测试成功’,表明功能已经实现:
if trim('hello ') != 'hello':
print('测试失败!')
elif trim(' hello') != 'hello':
print('测试失败!')
elif trim(' hello ') != 'hello':
print('测试失败!')
elif trim(' hello world ') != 'hello world':
print('测试失败!')
elif trim('') != '':
print('测试失败!')
elif trim(' ') != '':
print('测试失败!')
else:
print('测试成功!')
本题实现思路是递归:trim(str)抽象意义就是移除首尾空格,那么添加判断进行递归即可
代码如下:
#切片
#利用切片操作,实现一个trim()函数,
#去除字符串首尾的空格,注意不要调用str的strip()方法:
#使用递归函数
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('测试失败!')
elif trim(' hello') != 'hello':
print('测试失败!')
elif trim(' hello ') != 'hello':
print('测试失败!')
elif trim(' hello world ') != 'hello world':
print('测试失败!')
elif trim('') != '':
print('测试失败!')
elif trim(' ') != '':
print('测试失败!')
else:
print('测试成功!')
if __name__ == '__main__':
main()