Discuss / Python / 关于去空格的简单讨论

关于去空格的简单讨论

Topic source

脑洞开天

#1 Created at ... [Delete] [Delete and Lock User]
def trim(s):
    while s[:1] == ' ':
        s=s[1:]
    while s[-1:] == ' ':
        s=s[:-1]
    return s

用身份运算符is写法虽然可以通过,但是感觉不是很好,害怕这只是python编译器的一种巧合:让空值的id和字符串取出来的空值id相同了。

1.用[0]去开头,用[-1]去结尾显然通不过空值测试,看来以后取开头和结尾一定要用范围[:1],[-1:]

2.不理解python为什么切片时单个索引越界会报错,范围索引越界却不报错。比如‘abc'[1:100]明显越界了,却不报错。

是停留啊

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

def trim(s):

while s != '' and s[0] == ' ':

s = s[1:]

while s != '' and s[-1] == ' ':

s = s[:-1]

return s

觉得你写的这个很到位呢,不过还可以这样进化一下,进去就判断是不是空的,后面就不用重复写了哈哈哈

def trim(s):
    if s=='':
        return s
    while  s[0]==' ':
        s=s[1:]
    while  s[-1]==' ':
        s=s[:-1]
    return s

feil飞

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

为什么空值时,[-1:]不报错啊,-1下标此时是没有的,为什么可以通过呢


  • 1

Reply