为了账号安全,请及时绑定邮箱和手机立即绑定

python3的教程中,利用切片操作,实现strip()方法怎么做?(知道做法了,但问题删不了了0.0)

题目:利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法。

有‘  lck’, '   lck  ', 'lck    '  这3种情况,而且几个空格也无法判断,怎么切片?

正在回答

9 回答

def trim(s):

    start, end = 0, 0

    for i in range(len(s)):

        if s[i] == ' ':

            continue

        else:

            start = i

            break

    for j in range(-1, -1-len(s), -1):

        if s[j] == ' ':

            continue

        else:

            end = j

            break

        if start == end:

            new_s = ''

        else:

            new_s = s[start : len(s) + end + 1]

    return new_s

已验证代码,高效,包括全空格字符串和空字符串都可以识别

0 回复 有任何疑惑可以回复我~
def trim(s):
    if s=='':
        return s
    i=0
    p=len(s)-1
    while s[i]==' ':
        i=i+1
    while s[p]==' ':
        p=p-1
    print(s[i:p+1])


trim('')
trim('abd ')
trim(' abd ')
trim(' abd')
trim(' hello world ')


0 回复 有任何疑惑可以回复我~
def trim(s):
    i = len(s)
    j=0
    r=[]
    if s=='':
        return ''
    while s[j]==' ':
        j=j+1
        if j>i-1:
            break
    while s[i-1]==' ':
        i=i-1
        if i<1:
            break
    if i<j:
        return ''
    else:
        r=s[j:i]
    return r

也是笨办法 能用

0 回复 有任何疑惑可以回复我~
trim(s):
    index_first = index_last=-i ((s)):
        s[i] != :
            index_first=i
            i ((s)):
        s[i] != :
            index_last=i
    s:
        s =.join(s[index_first:index_last+])
    s


0 回复 有任何疑惑可以回复我~
trim(s):
    index_first = index_last=-i ((s)):
        s[i] != :
            index_first=i
            i ((s)):
        s[i] != :
            index_last=i
    s:
        s =.join(s[index_first:index_last+])
    s


0 回复 有任何疑惑可以回复我~
#1

慕用2704297

def trim(s): index_first = 0 index_last=-1 for i in range(len(s)): if s[i] != ' ': index_first=i break for i in range(len(s)): if s[i] != ' ': index_last=i if s: s =''.join(s[index_first:index_last+1]) return s
2018-01-28 回复 有任何疑惑可以回复我~

def trim(s):

    if s=='':

        return s

    elif s[0]!=' 'and s[-1]!=' ':

        return s

    elif s[0]==' ' and s[-1]==' ':

        s=s[1:-1]

        if s=='':

            return s

        else:

            return trim(s)

    elif s[0] == ' ' and s[-1] != ' ':

        s=s[1:]

        return trim(s)

    elif s[0] != ' ' and s[-1] == ' ':

        s=s[:-1]

        return trim(s)

比较笨,但是能用。


0 回复 有任何疑惑可以回复我~

def myTrim(n):

length=len(n)

for i in range(length):

if n[i] == ' ':

continue

else:

n = n[i:length]

break

length = len(n) -1

while n[length] == '':

if length == i:

break

length -= 1

return n[:length]


print(myTrim(' I am is Harry '))


1 回复 有任何疑惑可以回复我~
def trim(string):
    length=len(string)
    for i in range(length):
        if string[i]==' ':
            continue
        else:
            break
    j=length-1
    while string[j]==' ':
        if j==i:
            break
        j-=1
    new=string[i:j+1]
    return new

strip()不应该去除中间的空格,所以分别从头到尾,从尾到头扫描两遍,遇到字符就跳出循环。为了避免全是空格的情况,设置一个下标值是否相同的判断条件。

3 回复 有任何疑惑可以回复我~
#1

Liebesleid_z

运行不出来啊,哥。。
2018-02-03 回复 有任何疑惑可以回复我~
def myTrim(s):
    ss = ''
    for i in range(len(s)):
        if cmp(s[i], ' ') == 0 :
            continue
        else:
            ss = ss + s[i]
    return ss;


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

python3的教程中,利用切片操作,实现strip()方法怎么做?(知道做法了,但问题删不了了0.0)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信