Discuss / Python / 切片学习记录

切片学习记录

Topic source

望君佳

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

之前的代码出现了错误,indexerror。 分析原因后发现在测试代码中有连续多个空格,当while循环中删除空格只剩''(None)时,s[0]的索引失效,提示错误。

# -*- coding:utf-8 -*-
def trim(s)
    while s[0] == ' ':
        s = s[1:]
    while s[-1] == ' ':
        s = s[:-1]
    return s

代码改进:

# -*- coding:utf-8 -*-
def trim(s)
    while s[:1] == ' ':
        s = s[1:]
    while s[-1:] == ' ':
        s = s[:-1]
    return s

原因分析:在命令行跑过才知道,s='',print(s[1:]),print(s[2:])的操作是没有问题的,print(s[0])会显示indexerror。

从大神处看到的递归方法,惊为天人,也记录一下:

# -*- coding:utf-8 -*-
def trim(s)
    if s[:1] == ' ': #判断第一个字符是不是空格
        return trim(s[1:])
    elif s[-1:] == ' ' :#判断最后一个字符是不是空格
        return trim(s[:-1])
    else:
        return s

  • 1

Reply