deftrim(s):iflen(s) ==0:returnselse:whilelen(s) >0:ifs[0] =='': s= s[1:]elifs[-1] =='': s= s[:-1]elifs[0] !=''ands[-1] !='':breakreturns#测试:iftrim('hello') !='hello':print('测试失败!')eliftrim('hello') !='hello':print('测试失败!')eliftrim('hello')...
# 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法: deftrim(s): whiles[:1]==' ': s=s[1:] whiles[-1:]==' ': s=s[0:-1] returns # 测试: iftrim('hello ') !='hello': print('测试失败!') eliftrim(' hello') !='hello': print('测试失败!
#思路尝试,return 不能返回去除空格的格式结果 def trim(s): return s 1. 2. 3. 4. 1. #思路尝试,s=s[1:]去除了前面的所有空格的格式结果 # -*- coding: utf-8 -*- def trim(s): while ' '==s[0]: s=s[1:] return s 1. 2. 3. 4. 5. 6. 7. 8. ...
if s[:1] != ' ' and s[-1:] != ' ': #第一个不是空格且倒数第一个也不是空格时返回s return s elif s[:1] == ' ': #s[0]处是空格,则从s[1]处开始取值 return trim(s[1:]) #此处切掉s[0]处的空格,s = s[1:] else: #s[-1]处是空格 return trim(s[:-1]) #切掉s[-1...
def myTrim(s): while s[:1]==' ': s=s[1:] while s[-1:]==' ': s=s[:-1] return st=' t测试内容sss 'print(myTrim(t))
你的测试代码没写好,所以搞不清具体哪个用例失败。建议 为每个测试用例定义不同的失败信息 用assert代替if else,像这样 assert trim(' hello') == 'hello'assert trim(' hello') != 'wrong'
= ' ': return s elif s[:1] == ' ': return trim(s[1:]) else: return trim(s[:-1]) 如果输入的字符串中,一边有空格的话,我还可以理解代码是如何工作的,但是如果字符串两边都有空格的话,我就不懂为什么会最后输出的时候两边的空格都没了。比如s = ' hello ',请问这个代码在输出的时候是...
1.传一个s参数进行判断,如果有空字符它会切掉前后的空字符,返回一个新的s,这个新的s还有的话会继续执行这种重复的操作,类似于递归(博主不怎么会递归), 所以没有用循环也能做到循环的效果,看似是静态但因为递归实现了动态。 def trim(s): if s[:1] != ' ' and s[-1:] != ' ': ...
1.传一个s参数进行判断,如果有空字符它会切掉前后的空字符,返回一个新的s,这个新的s还有的话会继续执行这种重复的操作,类似于递归(博主不怎么会递归), 所以没有用循环也能做到循环的效果,看似是静态但因为递归实现了动态。 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 ',请问这个代码在输出的时候是...