Для лучшей практики и избегайте этих проблем, поместите текстовый файл (words.txt
) в папку WEB_INF (это безопасная папка для ресурсов). Затем:
ServletContext context = getContext();
InputStream resourceContent = context.getResourceAsStream("/WEB-INF/words.txt");
Проблема вашего кода - ваша логика в цикле for.
Вы видите: -
a = 6
b = 2
for i in range(0, 10):
a = x[a - b]
b = x[a] - x[b]
Да было 6 & amp; b равнялось 2, но когда вы впервые вводите цикл for, значение a равно
x [a-b], что равно x [6-2]
, т.е. x [4], что дает вам 11
, так что значение a равно 11, аналогично для b,
b = x[a] - x[b] # which translates to x[11] - x[2]
, который становится b = 32 & amp; цикл продолжает прыгать / изменять значения & amp; б, что приводит вас к IndexError: list index out of range
, что ожидается.
Попробуйте выполнить вашу программу в pycharm & amp; отладьте его, вы поймете это лучше, или, может быть, просто поместите несколько операторов печати.
Я не мог набрать столько комментариев, поэтому опубликовал их как ответ.