Member 13898084 Ответов: 3

Мне нужно написать программу Python, используя только команду find() в файлах, чтобы напечатать все те строки, которые имеют Python


Мне нужно сделать, чтобы напечатать все те строки, в которых появляется python, используя команду find() в файле. Использование python.
fhand=open('demo.txt')                           
for line in fhand:
        line=line.rstrip()
        if(line.find('python')):
           continue
        print(line)

это содержимое моего файла
python is fun
python java 
sai python
sachin
ganesha


в настоящее время он печатает только первые 2 строки

Что я уже пробовал:

fhand=open('demo.txt')
for line in fhand:
        line=line.rstrip()
        if(line.find('python')):
           continue
        print(line)
это мой код Пожалуйста помогите мне

3 Ответов

Рейтинг:
27

CPallini

fhand=open('demo.txt')
for line in fhand:
  line=line.rstrip()
  if( line.find('python') != -1):
    print(line)


Richard MacCutchan

+5, Теперь мы равны.

Рейтинг:
2

Kornfeld Eliyahu Peter

if(line.find('python')):
  continue

Метод Python String find() [^]
Согласно документации find() возвращает -1 для 'не нашли' и индексы (0), В 'нашли'... Однако "если" - это примерно ture/false, где любое число, кроме 0, является истинным...


Рейтинг:
0

Richard MacCutchan

То find метод возвращает индекс к первому вхождению цели поиска. Вы печатаете только те, где индекс равен нулю. Измените свой цикл на:

for line in fhand:
  line=line.rstrip()
  if(line.find('python') != -1):
    print(line)


В будущем, пожалуйста, правильно отформатируйте свой код между тегами <pre lang="Python">/pre>, Как я сделал здесь. Это делает его более читаемым.


CPallini

Ух ты, великие умы мыслят одинаково :-D
5.

Richard MacCutchan

Да, но ты добрался туда раньше меня.