使用一下上节课的芝士,这么久都没敢发过自己的代码
Topic sourceelif s[-1] == ' ':
s = trim(s[:-2])
请教一下这两行代码里面为什么s = trim(s[:-2])或者s = trim(s[:-1])都可以测试成功
楼上,他这个是递归,
elif s[0] == ' ':
s = trim(s[1:])
这个就表示如果字符串首为空格,就截取第二个开始到最后,然后重新调用该方法`trim`,如果尾部有空格就会进入第二个 `elis`去除尾部空格。直到首尾都没有空格
测试了一下这个是有问题的,
elif s[-1] == ' ':
s = trim(s[:-2])
这部分代码,当字符串尾部有奇数个空格就会多截取一个,因为切片操作是左开右闭,即 [:-2]其实是倒是第二个元素不会被切片操作截取在内,比如a = [1,2,3,4] ,a[:-2]结果是[1,2],所以这里应该改为
elif s[-1] == ' ':
s = trim(s[:-1]) // 将s[:-2]改为s[:-1]
- 1
那妖孽在北京
#!/usr/bin/pystu python3
# -*- coding: utf-8 -*-
def trim(s):
if s == '':
return s
elif s[0] == ' ':
s = trim(s[1:])
elif s[-1] == ' ':
s = trim(s[:-2])
return s