zsfsd
Topic source这应该是最简洁的答案了。 定义: a=vstr[1:] b=vstr[:-1] 那么: a and b ---> b b and a ---> a and操作取后面的值 a or b ---> a b or a ---> b or操作取前面的值 这里True可以替代a或者b。
如果False参与运算: False and / and False ---> False False or / or False ---> **
谢谢层主给出这么简洁的答案。
改成如下,测试通过
去除字符串首尾的空格
def trim(str): if(len(str) == 0 or (str[0]!=' ' and str[-1]!=' ')): return str elif str[0]==' ': return trim(str[1:]) else: return trim(str[:-1])
else: return trim(vstr[0]==' ' and vstr[1:] or vstr[:-1]) 这一段有没有高手解释一下什么意思,看不太懂,谢谢 最后修改的代码很好理解 def trim(str): if(len(str) == 0 or (str[0]!=' ' and str[-1]!=' ')): return str elif str[0]==' ': return trim(str[1:]) else: return trim(str[:-1])
这最后一个我怎么觉着应该是return trim(str[:-2])才对啊,不过-1和-2都能测试成功。我还没看明白。
我有一个问题是这个 if(len(vstr)==0 or (vstr[0]!=' ' and vstr[-1]!=' ')) 这段代码中的这个 len(vstr)==0 以及这个 vstr[0]!=' ' 是什么意思啊
- 1
- 2
tjx_1222
def trim(vstr): if(len(vstr)==0 or (vstr[0]!=' ' and vstr[-1]!=' ')): return vstr else: return trim(vstr[0]==' ' and vstr[1:] or vstr[:-1])