擅长:python、mysql、java
<p>似乎Carcigenicate指出了这个问题,但我还不能发表评论,所以我在这里写作。当<code>k</code>的值为<code>len(testo) - 1</code>并且程序进入while循环时,第一个if语句,即<code>if testo[k] == '\n' </code>为真(假设<code>testo</code>为字符串),则执行进入选择语句,并且<code>k</code>再次递增,这意味着现在<code>k</code>等于<code>len(testo)</code>当执行被传递到第二个<code>if</code>语句时,程序检查条件,发现索引超出范围,因此出现错误</p>
<pre class="lang-py prettyprint-override"><code>
while k < len(testo):
if testo[k] == '\n':
sillaba += testo[k]
k += 1
Es.append(sillaba)
sillaba = ""
continue
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
</code></pre>
<p>您可以添加<code>continue</code>语句将执行发送到下一个迭代以避免错误</p>