Программа которая ищет слова в тексте python

В этой статье мы расскажем о четырех способах найти подстроку в строке. У каждого способа есть плюсы и минусы — о них мы также кратко поговорим.

1) Оператор in

Простейший способ проверить наличие подстроки в строке — оператор in . Он используется для проверки наличия элемента в какой-либо структуре данных. Этот оператор возвращает булево значение — True или False . Пример:

fullstring = «pythonist» substring = «python» if substring in fullstring: print «Подстрока найдена!» else: print «Подстрока не найдена!»

Этот оператор — сокращенный вызов метода __contains__ . Он подходит и для проверки наличия элемента в списке.

2) Метод String.index()

Тип string имеет метод index . Он возвращает наименьший индекс, по которому обнаруживается начало подстроки в строке. Если подстрока не найдена, то возбуждается исключение ValueError . Реализовать его можно с помощью блока try-except-else.

fullstring = «pythonist» substring = «python» try: fullstring.index(substring) except ValueError: print «Подстрока не найдена!» else: print «Подстрока найдена!»

Этот метод может особенно пригодиться, если вам нужно найти индекс подстроки, а не просто узнать о ее существовании.

Посчитать Уникальные Слова в Тексте || Python задачи с технических собеседований

3) Метод String.find()

Тип string имеет еще один метод — find . Он удобнее, чем index , потому что благодаря ему нам не нужно думать об обработке ошибок. Если метод не находит подстроку в строке, он возвращает -1 . В случае успеха он возвращает наименьший индекс, по которому обнаруживается подстрока.

fullstring = «pythonist» substring = «python» if fullstring.find(substring) != -1: print «Подстрока найдена!» else: print «Подстрока не найдена!»

Если вы не хотите обрабатывать ошибки — отдайте предпочтение этому методу, а не index .

4) Регулярные выражения (REGEX)

Регулярные выражения — более гибкий способ нахождения подстрок в строках. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, — re . Модуль re содержит функцию search , которая позволит вам найти подстроку:

from re import search fullstring = «pythonist» substring = «python» if search(substring, fullstring): print «Подстрока найдена!» else: print «Подстрока не найдена!»

Читайте также:
Как написать самую простую программу

Если вам нужны сложные сопоставления, например, учет регистра — этот метод подойдет вам лучше всего. Но у него есть и недостатки: сложность и скорость работы. То есть, в простеньких задачах его лучше не использовать.

Источник: pythonist.ru

Python: поиск подстроки, операции со строками. Как выполнять поиск в строке Python?

Python_Deep_5.6_site-5020-7250df.png

Программа на Python , высчитывающая количество пробелов,символов,слов в тексте.

В этой статье поговорим про строки в Python, особенности поиска, а также о том, как искать подстроку или символ в строке.

Но сначала давайте вспомним основные методы для обработки строк в Python: • isalpha(str) : если строка в Python включает в себя лишь алфавитные символы, возвращается True; • islower(str) : True возвращается, если строка включает лишь символы в нижнем регистре; • isupper(str) : True, если символы строки в Python находятся в верхнем регистре; • startswith(str) : True, когда строка начинается с подстроки str; • isdigit(str) : True, когда каждый символ строки — цифра; • endswith(str) : True, когда строка в Python заканчивается на подстроку str; • upper() : строка переводится в верхний регистр; • lower() : строка переводится в нижний регистр; • title() : для перевода начальных символов всех слов в строке в верхний регистр; • capitalize() : для перевода первой буквы самого первого слова строки в верхний регистр; • lstrip() : из строки в Python удаляются начальные пробелы; • rstrip() : из строки в Python удаляются конечные пробелы; • strip() : из строки в Python удаляются и начальные, и конечные пробелы; • rjust(width) : когда длина строки меньше, чем параметр width, слева добавляются пробелы, строка выравнивается по правому краю; • ljust(width) : когда длина строки в Python меньше, чем параметр width, справа от неё добавляются пробелы для дополнения значения width, при этом происходит выравнивание строки по левому краю; • find(str[, start [, end]) : происходит возвращение индекса подстроки в строку в Python. В том случае, если подстрока не найдена, выполняется возвращение числа -1; • center(width) : когда длина строки в Python меньше, чем параметр width, слева и справа добавляются пробелы (равномерно) для дополнения значения width, причём происходит выравнивание строки по центру; • split([delimeter[, num]]) : строку в Python разбиваем на подстроки в зависимости от разделителя; • replace(old, new[, num]) : в строке одна подстрока меняется на другую; • join(strs) : строки объединяются в одну строку, между ними вставляется определённый разделитель.

Читайте также:
Кто скрывался под маской пантеры в программе маска

Обрабатываем строку в Python

Представим, что ожидается ввод числа с клавиатуры. Перед преобразованием введенной нами строки в число можно легко проверить, введено ли действительно число. Если это так, выполнится операция преобразования. Для обработки строки используем такой метод в Python, как isnumeric() :

string = input(«Введите какое-нибудь число: «) if string.isnumeric(): number = int(string) print(number)

Следующий пример позволяет удалять пробелы в конце и начале строки:

string = » привет мир! » string = string.strip() print(string) # привет мир!

Так можно дополнить строку пробелами и выполнить выравнивание:

print(«iPhone 7:», «52000».rjust(10)) print(«Huawei P10:», «36000».rjust(10))

В консоли Python будет выведено следующее:

iPhone 7: 52000 Huawei P10: 36000

Поиск подстроки в строке

Чтобы в Python выполнить поиск в строке, используют метод find() . Он имеет три формы и возвращает индекс 1-го вхождения подстроки в строку: • find(str) : поиск подстроки str производится с начала строки и до её конца; • find(str, start) : с помощью параметра start задаётся начальный индекс, и именно с него и выполняется поиск; • find(str, start, end) : посредством параметра end задаётся конечный индекс, поиск выполняется до него.

Когда подстрока не найдена, метод возвращает -1:

welcome = «Hello world! Goodbye world!» index = welcome.find(«wor») print(index) # 6 # ищем с десятого индекса index = welcome.find(«wor»,10) print(index) # 21 # ищем с 10-го по 15-й индекс index = welcome.find(«wor»,10,15) print(index) # -1

Замена в строке

Чтобы в Python заменить в строке одну подстроку на другую, применяют метод replace() : • replace(old, new): подстрока old заменяется на new; • replace(old, new, num): параметр num показывает, сколько вхождений подстроки old требуется заменить на new.

Пример замены в строке в Python:

phone = «+1-234-567-89-10» # дефисы меняются на пробелы edited_phone = phone.replace(«-«, » «) print(edited_phone) # +1 234 567 89 10 # дефисы удаляются edited_phone = phone.replace(«-«, «») print(edited_phone) # +12345678910 # меняется только первый дефис edited_phone = phone.replace(«-«, «», 1) print(edited_phone) # +1234-567-89-10

Разделение на подстроки в Python

Для разделения в Python используется метод split() . В зависимости от разделителя он разбивает строку на перечень подстрок. В роли разделителя в данном случае может быть любой символ либо последовательность символов. Этот метод имеет следующие формы: • split() : в роли разделителя применяется такой символ, как пробел; • split(delimeter) : в роли разделителя применяется delimeter; • split(delimeter, num) : параметром num указывается, какое количество вхождений delimeter применяется для разделения. При этом оставшаяся часть строки добавляется в перечень без разделения на подстроки.

Читайте также:
Где хранятся все программы и данные на компьютере

Соединение строк в Python

Рассматривая простейшие операции со строками, мы увидели, как объединяются строки через операцию сложения. Однако есть и другая возможность для соединения строк — метод join() :, объединяющий списки строк. В качестве разделителя используется текущая строка, у которой вызывается этот метод:

words = [«Let», «me», «speak», «from», «my», «heart», «in», «English»] # символ разделителя — пробел sentence = » «.join(words) print(sentence) # Let me speak from my heart in English # символ разделителя — вертикальная черта sentence = » | «.join(words) print(sentence) # Let | me | speak | from | my | heart | in | English

А если вместо списка в метод join передать простую строку, разделитель будет вставляться уже между символами:

word = «hello» joined_word = «|».join(word) print(joined_word) # h|e|l|l|o

Источник: otus.ru

Поиск слова в файле

Есть файл .txt . В нем записан текст. Нужно создать сигнатуру с информацией (например a=’привет’) и проверить, есть ли эта сигнатура в файле. Если да — то вывести на экран ее.

Отслеживать

371 1 1 золотой знак 5 5 серебряных знаков 13 13 бронзовых знаков

задан 23 ноя 2013 в 12:09

1 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака

а на каком языке программирования это вам нужно?

23 ноя 2013 в 12:26

А тривиально вызвать grep ?

23 ноя 2013 в 13:09

23 ноя 2013 в 18:29

На питоне господа, забыл, что это сайт не только для питона)

24 ноя 2013 в 14:54

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

Чтобы напечатать все строки, которые содержат заданное слово в данном текстовом файле, закодированном в utf-8 кодировке:

#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import print_function import io word = u’привет’ with io.open(‘/path/to/file.txt’, encoding=’utf-8′) as file: for line in file: if word in line: print(line, end=»)

  • данный метод закрывает входной файл ( with -инструкция), не рассчитывая на особенности уборки мусора в реализации интерпретатора или возникновения исключений (ошибок)
  • считывание файла идёт построчно без загрузки всего файла в память
  • поддерживаются произвольные Юникодные символы (можно другую кодировку использовать в io.open() вызове — она никак не связана с кодировкой исходного кода)
  • один и тот же код работает как на Питоне 2 так и на Питоне 3.

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru