Discuss / Python / 有些复杂,但对于前后有更多空格的字符串都可以用

有些复杂,但对于前后有更多空格的字符串都可以用

Topic source

Mahogany3

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

def trim(s) :

    j=0

    n=0

    m=-1

    if s=='':#if 是为了排除s=‘’的情况,作为一种特殊情况直接输出。

        return s

    else:

        for i in s:#for语句是为了找出字符串中空格的个数并输出成j

            if i==' ':

                j=j+1

        if j==len(s):#判断j是否和字符串长度相当,即字符串是否全是由空格组成,并也作为特殊情况直接return

            return ''

        else:

            while s[n]==' ':#获取前面有多少空格,之所以不能用这种方法测''and'   '

                #是由于对于全部是空格的字符串,n会一直从头加到位,一直加到len(s)的长度,s[len(s)]在s字符串以外,这时候会显示string index outof range

                #而对于‘’,s【0】就已经超出list调用范围

                n=n+1

            while s[m]==' ':#获取后面有多少空格,上面的while可以用for……break代替,但是这里不可以,因为for貌似不可以提供一个从后往前的顺序

                m=m-1

            if m==-1:#这个if是因为s【0:0】、s【0:-1】皆不可以表示一个完整的list

                m=None

            else:

                m=m+1#因为最后输出s【n:m】时m要是仍然是刚刚的值就会少最后一位

            s=s[n:m]

            return s


  • 1

Reply