Discuss / Python / zsfsd

zsfsd

Topic source

tjx_1222

#1 Created at ... [Delete] [Delete and Lock User]

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])

阳光漫射

#2 Created at ... [Delete] [Delete and Lock User]

这应该是最简洁的答案了。 定义: 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 ---> **

谢谢层主给出这么简洁的答案。

这个代码很python!长知识了

是进城啊

#4 Created at ... [Delete] [Delete and Lock User]

试了一次,显示“测试失败”

鸟人子川

#5 Created at ... [Delete] [Delete and Lock User]

改成如下,测试通过

去除字符串首尾的空格

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])

渔人舟行

#6 Created at ... [Delete] [Delete and Lock User]

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]!=' ' 是什么意思啊

仔细看了一下,这个太精髓了。就和c++里面的三目运算符是一样的效果,真的很强

可否解释一下这个的意思: return trim(vstr[0]==' ' and vstr[1:] or vstr[:-1]) 谢谢!

4ffa924959763dfba015b626e217f456


  • 1
  • 2

Reply