Форум » Циклы и ветвления » Задача №2257 » Ответить

Задача №2257

nikitadvu: Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых встречается комбинация F*O, где звёздочка обозначает любой символ Подскажите,где тут ошибка? [pre2] f=open('24-s1.txt') s=f.readline() k=0 for i in range(len(s)-2): if s[ i ]=='F' and s[i+2]=='O': k+=1 print(k) [/pre2]

Ответов - 2

polyakovss: [pre2] f=open('24-s1.txt') s=f.readlines() k=0 for x in s: for i in range(len(x)-2): if x[ i ]=='F' and x[i+2]=='O': k+=1 break print(k)[/pre2]

nikitadvu: Спасибо за ответ,но ещё хотел бы уточнить: polyakovss пишет: s=f.readlines() Читаем файловый объект построчно и возвращаем список содержащий строки (он будет выглядеть так,например ["FYOGDGHTHJGK","FGHHDFGOUKDK"..]) polyakovss пишет: for x in s: Проходим по списку каждой строки целиком polyakovss пишет: for i in range(len(x)-2): В каждой строке из списка длины от 0 до len(x)-2 перебираем нужные нам символы s[ i ] и s[i+2] и если находим,считаем строку подходящей,увеличиваем счётчик +1 и переходим к следующей строке в списке. Всё ли так? И ещё один момент, в отличие от f.readlines, f.readline считывает всё в одну длинную строку,поэтому в данной задаче мы не можем его использовать?



полная версия страницы