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行使用完全相同的代码行并获得索引超出范围错误,为什么会这样?
答案 0 :(得分:0)
这可能是因为在上面的if语句中,两个字符串“string1”和“string2”具有相同的长度,因此可以引用相等数量的元素,i。
但是在你的错误区域中,你的if语句声明len(string1)&lt; len(string2)因此最终不能具有相同的大小。
如果一个更大,它们在string1 [i]和string2 [i]中没有相同的i。
第9行 而不是:
for i in range(0, len(string2)):
使用:
for i in range(0, len(string1)):