错误:字符串索引超出范围

时间:2015-05-18 05:59:49

标签: python

我编写了下面给出的python函数:

def processstring(string):
    gtkname=""
    if string[0]=="/":
        i=1
        while(string[i]!="/"):
            if i==len(string):
                break
            gtkname=gtkname+string[i]
            i=i+1
        return gtkname
    return string

当我执行代码时,它给出了以下错误:

while(string[i]!="/"):
IndexError: string index out of range.

我不知道为什么会出现这个错误。

2 个答案:

答案 0 :(得分:3)

该情况导致错误:while string[i] != "/":

在您递增i之后,检查之前的条件,检查if i == len(string):以打破循环。将该检查移至循环结束:

    while(string[i]!="/"):
        gtkname=gtkname+string[i]
        i=i+1
        if i==len(string):
            break

答案 1 :(得分:0)

您没有以正确的方式操纵字符串字符的迭代

def processstring(string):
    if string[0]=="/":
        return string[1:string.find("/",1)]
    return string

Python为我们提供了不在列表索引上使用直接迭代的方法