我有一个函数,我正在从我的主函数调用。
/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java5/jre/bin:/usr/java5/bin
这很好用。但是,当我再添加一个语句时,只会执行第一个打印。
def generate_new(tokens, outfile):
print('NO')
new_sents = []
for i in range(0, len(tokens)):
first = tokens[i]
second = tokens[i]
print('YES')
我已经尝试过冲洗缓冲区了。我怀疑这是一个缩进问题,但此代码以前运行正常。我在函数的末尾添加了一些语句,从那以后它永远不会执行循环外的语句。可能是什么问题?谢谢。
答案 0 :(得分:2)
问题是您正在访问列表tokens
越界,
range(0, len(tokens))
从0
转到len(tokens)-1
现在,当您访问tokens[i+1]
时,它会抛出索引超出绑定的异常并且执行停止。因此,循环执行后没有任何内容。
您应该能够在控制台上看到异常。
无论如何,修复 -
更改逻辑或仅迭代len(tokens)-1
我希望能解释这个问题。