这是一个最简单的自定义函数,自己调用自己,我的理解是这样的:
1.传一个s参数进行判断,如果有空字符它会切掉前后的空字符,返回一个新的s,这个新的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('测试失败!')
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('测试成功!')
经过测试是成功的,我的每篇博客都会自己去测试成功后再发布,自己也被不少博客坑过。所以可以放心代码是正确的,如有报错请检查相关配置设置