Python返回IndexError:字符串索引超出此功能的范围

Python returns IndexError: string index out of range on this funtion why

本问题已经有最佳答案,请猛点这里访问。

我不明白为什么这个代码不起作用:

1
2
3
4
5
6
7
def reverse(string):
    rev_string = []
    for c in range(len(string)):
        rev_string[c]=string[(len(string))-c]
    str(rev_string)
    return rev_string
print(reverse("google"))

并引发此错误消息:

IndexError: string index out of range


当len=6和c=0时。因为没有索引6,所以会得到indexerror


代码中有三个问题。

  • rev_字符串是一个空列表,不能对其进行索引,可以使用append

  • 您需要使用''.join而不是str从列表中创建字符串;

  • 列表索引基于0,因此最大索引为len(string) - 1

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def reverse(string):

        rev_string = []
        for c in range(len(string)):
            rev_string.append(string[len(string)-c-1])
    ?
        return ''.join(rev_string)

    print(reverse("google"))
    # elgoog