前言
问题
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
过程
分析
首先判断字符串的长度是否为0,如果是,直接返回字符串
其次,循环判断字符串的首部是否有空格,如果有,去掉空格,再判断字符串的长度是否为0,如果是,直接返回字符串
然后,循环判断字符串的尾部是否有空格,如果有,去掉空格,再判断字符串的长度是否为0,如果是,直接返回字符串
最后,返回字符串
代码实现
# -*- coding: utf-8 -*-
def trim(s):
if 0==len(s):
return s
while ' '==s[0]:
s=s[1:]
if 0==len(s):
return s
while ' '==s[-1]:
s=s[:-1]
if 0==len(s):
return s
return s
测试
# 测试:
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('测试成功!')
结果
测试成功!
结论
此题主要考察对Python中切片与递归的理解,找出规律,利用代码即可实现。