Ваш код имеет несколько проблем, и я предполагаю, что вы хотите узнать количество уникальных троек "XYZ" в текстовом файле. Давайте разберемся с вашим кодом и исправим его. Вот исправленная версия вашего кода:
filename = "C:\\Users\\zamin\\Downloads\\24_8431.txt"
with open(filename) as f:
content = f.read()
k = -3
m = 0
a = set()
for x1 in "XYZ":
for x2 in "XYZ":
for x3 in "XYZ":
s = x1 + x2 + x3
if s.count('X') == 1 and s.count('Y') == 1 and s.count('Z') == 1:
a.add(s)
print(a)
for triple in a:
index = content.find(triple)
while index != -1:
k = -3
index = content.find(triple, index + 1)
else:
k += 1
m = max(m, k)
print(m)
Я изменил следующие вещи:
Заменил s=open("C:\\Users\\zamin\\Downloads\\24_8431.txt").readlines() на контекстный менеджер with open() as f для правильного открытия и закрытия файла.
Использовал
f.read () вместо f.readlines(), так как вам нужно искать последовательности символов в одной строке, а не в разных строках.
Удалил переменную t, так как она не используется.
Заменил цикл for i in range(len(s)-2): на цикл for triple in a:, чтобы итерироваться по уникальным тройкам "XYZ".
Заменил проверку if t in s: на цикл while, который ищет вхождения троек в тексте, используя метод find().
Теперь код должен работать и выводить максимальное количество смежных уникальных последовательностей "XYZ", найденных в файле.