1.最近又重新学习一遍python, 看廖雪峰的教程切片部分,请问这个代码是如何实现的把两边的空格都用切片的方法在输出中不显示出来的
def trim(s):
if s[:1] != ' ' and s[-1:] != ' ':
return s
elif s[:1] == ' ':
return trim(s[1:])
else:
return trim(s[:-1])
如果输入的字符串中,一边有空格的话,我还可以理解代码是如何工作的,但是如果字符串两边都有空格的话,我就不懂为什么会最后输出的时候两边的空格都没了。比如s = ' hello ',请问这个代码在输出的时候是如何变成'hello'
的。因为我的理解是如果字符串为' hello ',if不执行,elif执行后,返回的是'hello '。那最后的else也没有执行,为什么结果还是'hello'。
明白了 执行elif后返回的是trim(s),之后还是会重新执行一边这个函数。没错吧?