【问题标题】:Python returns IndexError: string index out of range on this funtion why [duplicate]Python 返回 IndexError: string index out of range on this function 为什么[重复]
【发布时间】:2017-05-13 07:53:31
【问题描述】:

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

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: 字符串索引超出范围

【问题讨论】:

  • 你知道有一个reversed 内置函数吗?
  • 如果您只是想在没有循环的情况下反转字符串,也可以使用return string[::-1] 来反转字符串。

标签: python


【解决方案1】:

您的代码存在三个问题。

  1. rev_string 是一个空列表,你不能索引它,你可以用append 代替;

  2. 您需要使用''.join 而不是str 从列表中生成字符串;

  3. 列表索引是从 0 开始的,所以最大索引是 len(string) - 1:


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

【讨论】:

    【解决方案2】:

    当 len=6 和 c=0 时。 你会得到 indexerror,因为没有 index6

    【讨论】:

    • 知道这段代码本身的逻辑是行不通的
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 2022-08-20
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    相关资源
    最近更新 更多