Discuss / Python / 真的很厉害~

真的很厉害~

Topic source

Nathan_Hu_

#1 Created at ... [Delete] [Delete and Lock User]
if(len(s) == 0 or (s[0] != ' ' and s[-1] != ' ')):
    return s
elif s[0] == ' ':
    return trim(s[1:])
else:
    return trim(s[:-1])

灵活运用了递归的知识,佩服楼下的大牛~

#encoding:utf-8

#定义一个函数,用来去除字符串首尾的空格 def trim(s): '''首先判断该字符串是否为空,如果为空,就返回该字符串, 如果不为空的话,就判断字符串首尾字符是否为空, 如果为空,就使用递归再次调用该函数trim(),否则就返回该函数''' if len(s) == 0: return s elif s[0] == '': return (trim(s[1:])) elif s[-1] == '': return (trim(s[:-1])) return s

#调用该函数 trim('hello ') trim(' hello') trim(' hello ') trim('') trim(' ')

这么写也对吧,可是return返回的结果怎么看不到?

纪小赟

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

def trim(s): if len(s)==0: return s elif s[0]=='': return trim(s[1:]) elif s[-1]=='': return trim(s[:-1]) else: return s

trim(' Hello') ' Hello'

为什么返回不到想要的结果呢

你们最后不应该return s。字符是不可变对象,你返回的s跟你最开始输入的s是一样的,并没有经过函数处理

他这样写不错,是要return s

之所以出现不能正确返回结果,是他代码中: s[0]=='' 应写成s[0]==' ' s[-1]=='' 应写成s[-1]==' ' 引号中间应该是一个空字符

芊蔚澄辰

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

对的,#红星闪闪白水茫茫#说得经过操作是正确的。


  • 1

Reply