python4ik
А ведь n стоит не в цикле for w in z,а увеличивается при условии,что символ из моего списка совпадает с одним из символов в файле!
Оч хорошо. Ну вот нашли вы этот символ в файле, увеличили n, потом нашли еще и еще и так дошли до конца l. А файлы с совпадениями продолжают поступать. Вот так вы и выходите за границы l.
Я, честно говоря не совсем понимаю что вы там считаете. Вот смотрите:
Допустим для простоты, что мы ищем символы ‘a’ и ‘b’ (l=) по вашему алгоритму и в каталоге у нас 5 файлов с именами ab1, ab2, ab3, ab4 и ab5.
Для файла с именем ab1 мы имеем n=0 и находим что ‘a’ (он же l ) у нас в имени файла присутствует. Мы выводим ‘a’ и переходим к следующему файлу. n становится 1. И так далее.
Вопрос1 - почему мы переходим к след. файлу не проверив есть ли в первом ‘b’?
Вопрос2 - понятно ли, что при n=3, то есть при обработке нашего третьего файла мы будем пытаться искать в нем l и получим Index Error, потому что в l только 2 элемента?
Вопрос3 - пытались ли вы просто вот так пройти по программе строка за строкой?
Вопрос4 - пытались ли вы воспользоваться отладочной печатью с помощью print, чтобы понять что происходит, когда программа выполняется?