为什么一个地方的指数超出范围,而另一个地方却没有?

2024-05-07 00:34:53 发布

您现在位置:Python中文网/ 问答频道 /正文

def extendedString(string1, string2):
    newString = ""
    if len(string1) == len(string2):
        for i in range(0, len(string1)):
            newString = newString + string1[i] + string2[i]
        return newString
    else:
        if len(string1) < len(string2):
            for i in range(0, len(string2)):
                string1 = string1 + string1[i - 1]
            for i in range(0, len(string1)):
                newString = newString + string1[i] + string2[i]
            return newString
        else:
            for i in range(0, len(string1)):
                string2 = string2 + string2[i - 1]
            for i in range(0, len(string2)):
                newString = newString + string1[i] + string2[i]
            return newString

在第一个if语句中,我使用以下代码:

            newString = newString + string1[i] + string2[i]

没有索引越界错误,但在else语句中,我在第12行使用了完全相同的代码行,得到了一个索引越界错误,这是为什么


Tags: 代码inforlenreturnifdef错误
1条回答
网友
1楼 · 发布于 2024-05-07 00:34:53

这可能是因为在上面的if语句中,两个字符串“string1”和“string2”具有相同的长度,因此可以引用等量的元素,即

但是在错误区域,if语句声明len(string1)<;因此,len(string2)最终不能具有相同的大小i

如果字符串1[i]和字符串2[i]中的i较大,则它们没有相同的i

在第9行, 而不是:

for i in range(0, len(string2)):

使用:

for i in range(0, len(string1)):

相关问题 更多 >