Автор | Сообщение |
|
Отправлено: 17.06.21 17:04. Заголовок: Задача №2257
Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых встречается комбинация F*O, где звёздочка обозначает любой символ Подскажите,где тут ошибка? 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)
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 17.06.21 18:57. Заголовок: Ответ
цитата: | 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) |
|
|
|
|
|
Отправлено: 17.06.21 21:31. Заголовок: Спасибо за ответ,но ..
Спасибо за ответ,но ещё хотел бы уточнить: polyakovss пишет: Читаем файловый объект построчно и возвращаем список содержащий строки (он будет выглядеть так,например ["FYOGDGHTHJGK","FGHHDFGOUKDK"..]) polyakovss пишет: Проходим по списку каждой строки целиком polyakovss пишет: цитата: | for i in range(len(x)-2): |
| В каждой строке из списка длины от 0 до len(x)-2 перебираем нужные нам символы s[ i ] и s[i+2] и если находим,считаем строку подходящей,увеличиваем счётчик +1 и переходим к следующей строке в списке. Всё ли так? И ещё один момент, в отличие от f.readlines, f.readline считывает всё в одну длинную строку,поэтому в данной задаче мы не можем его использовать?
|
|
|
|