У меня в программе три списка. «библиотека» содержит большой объем текста, «ссылки» содержит список слов, которые следуют друг за другом в ссылках, а «возможные» просматривает каждый раз, когда каждый элемент в «ссылках» появляется вместе, поэтому он может получить следующее слово.
Программа получает длину «ссылок», поэтому она знает, сколько элементов нужно проверить в «библиотеке», но фрагмент кода, который проверяет, есть ли в ссылках 2 элемента, возвращает «неожиданный отступ», а я не могу понять почему. Даже если я уберу отступ, он вернет ошибку. Если он не имеет отступа, возникает ошибка, потому что он нарушает остальную часть кода.
Ниже вся функция. Вся программа работает за исключением ошибки отступа.
def possibles_compile():
compile = 'yes'
global temp_possibles
temp_possibles = []
while compile != 'no':
if len(reference) == 1:
for i in range(library_length):
try:
if library[i] == reference[0]:
try:
temp_possibles.append(library[i + 1])
except IndexError:
temp_possibles.append(library[0])
elif len(reference) == 2:
for i in range(library_length):
if library[i] == reference[0]:
try:
if library[i + 1] == reference[1]:
try:
temp_possibles.append(library[i + 2])
except IndexError:
temp_possibles.append(library[0])
except IndexError:
if library[0] == reference[1]:
temp_possibles.append(library[1])
elif len(reference) == 3:
for i in range(library_length):
if library[i] == reference[0]:
try:
library[i + 1] == reference[1]:
except IndexError:
if library[0] == reference[1]:
if library[1] == reference[2]:
temp_possibles.append(library[2])
else:
try:
if library[i + 2] == reference[2]:
try:
temp_possibles.append(library[i + 3])
except IndexError:
temp_possibles.append(library[0])
except IndexError:
if library[0] == reference[2]:
temp_possibles.append(library[1])
elif len(reference) == 4:
for i in range(library_length):
if library[i] == reference[0]:
try:
library [i + 1] == reference[1]:
except IndexError:
if library[0] == reference[1]:
if library[1] == reference[2]:
if library[2] == reference[3]:
temp_possibles.append(library[3])
else:
try:
library[i + 2] == reference[2]:
except IndexError:
if library[0] == reference[2]:
if library[1] == reference[3]:
temp_possibles.append(library[2])
else:
try:
if library[i + 3] == reference[3]:
try:
temp_possibles.append(library[i + 4])
except IndexError:
temp_possibles.append(library[0])
except IndexError:
if library[0] == reference[3]:
temp_possibles.append(library[1])
compile = 'no'
return 'done'