有人能帮我吗?为什么这个go索引超出范围。确切的时间是在“如果testo[k]不在vocali:
while k < len(testo):
if testo[k] == '\n':
sillaba += testo[k]
k += 1
Es.append(sillaba)
sillaba = ""
if testo[k] not in vocali:
sillaba += testo[k]
k += 1
if v:
Es.append(sillaba[:-1])
k -= 1
v = False
sillaba = ""
else:
sillaba += testo[k]
k += 1
v = True
我的猜测是,在
testo
的末尾有“\n”,因此if testo[k] == '\n'
结果True
和k += 1
运行,将k
的值增加到大于testo
长度的值。因此,if testo[k] not in vocali:
给出了索引超出范围的错误简单的修复方法是在增加
k
之前检查k
是否大于testo
的长度似乎Carcigenicate指出了这个问题,但我还不能发表评论,所以我在这里写作。当
k
的值为len(testo) - 1
并且程序进入while循环时,第一个if语句,即if testo[k] == '\n'
为真(假设testo
为字符串),则执行进入选择语句,并且k
再次递增,这意味着现在k
等于len(testo)
当执行被传递到第二个if
语句时,程序检查条件,发现索引超出范围,因此出现错误您可以添加
continue
语句将执行发送到下一个迭代以避免错误相关问题 更多 >
编程相关推荐