Как проверить наличие слова в тексте python
Перейти к содержимому

Как проверить наличие слова в тексте python

  • автор:

Проверка слова на наличие в файле txt

Я новичок и моя задача была найти слово в файле txt с набором русских слов.
Вот, что у меня получилось:

1 2 3 4 5
with open(filename) as f: if len(a) >= 3: print(a if a in f.read() else 'not found') else: print('Это слово короткое')

Когда вводишь слово «трактор», то получаешь обратно слово «трактор» как найденное слово в файле.
Но если ввести «ракт», «трак», «ктор», то и эти части слова «трактор», оно воспринимает как существующие.

Как сделать проверку для таких случаев?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Проверка на наличие строчки в текстовом файле (ini иле txt)
Всем доброго времени суток дороги пользователи портала! Сегодня я снова столкнулся с проблемой при.

Проверка на наличие числа в txt
Здравствуйте, подскажите код для проверки наличия числа "1" в txt файле, если есть,пусть выведет.

Проверка на наличие значения из txt
Добрый день. Есть txt файл со значениями формата: 1 2 3 4 5 и есть переменная Можно ли.

Проверить наличие строки в txt файле
Ребятя, помогите реализовать поиск строки, например "блаблабла" в txt файле Если же она.

Автоматизируй это!

Эксперт Python

7537 / 4554 / 1205
Регистрация: 30.03.2015
Сообщений: 13,116
Записей в блоге: 29

ЦитатаСообщение от Dannnooon Посмотреть сообщение

Как сделать проверку для таких случаев?
разбить на слова и проверять через == а не in
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
Welemir1, если есть список слов, то можно и через in .
Автоматизируй это!

Эксперт Python

7537 / 4554 / 1205
Регистрация: 30.03.2015
Сообщений: 13,116
Записей в блоге: 29
ioprst, имел в виду не сравнивать ИН в слове. для списка слов -да, норм
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
ТСу можно посоветовать регулярку

1 2 3 4 5
import re text = 'трактор не тракт,' print(re.findall(rf'\b> ")>\b', text))

Если регулярку нельзя, то использовать вариант Welemir1. Хотя список слов все равно лучше получать регуляркой, а не split’ом.

ioprst, всегда уважал тех, кто понимает этот сатанизм. Жуть.

Меню пользователя @ Welemir1
Читать блог

Регистрация: 08.12.2020
Сообщений: 2

Welemir1, спасибо за помощь! Очень помогли) Слава богу обошлось без регулярок) Теперь хотелось бы понять как вывести ‘такого слова не существует’, если совпадения не найдены. Пытался написать через else, но там цикл и оно выводит сообщение к каждому варианту, который не совпал.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Проверка txt файла на наличие в нем номера
Добрый день форумчане! Совсем недавно начал изучать С# (первый мой язык) и столкнулся с.

Как проверить на наличие в txt файле записи с использованием команды if
Например в тхт файле написано следующее: 01 как правильно поставить условие функции if, чтобы.

Проверка на наличие записи в файле
Доброго времени суток, с пхп почти не знаком, эксперементирую, и столкнулся с проблемой. Требуется.

Проверка на наличие двух одинаковых строк в файле
Всем привет. Входной файл Input.txt выглядит примерно следующим образом: Первая цифра.

Проверка на наличие строки в файле с последующей записью
Здравствуйте, уважаемые пользователи форума. Только зарегистрировался, прошу простить меня, если.

Проверка слова на наличие в масиве
Здравствуйте уважаемые форумчане. Прошу вашей помощи по написании простенькой программы, а именно.

Проверка на наличие слова в словаре
Здравствуйте! Нужна помощь, срочно. Есть два масива a = b = Нужно написать проверку на.

Проверка на наличие нескольких символов в строке в определенном порядке. Питон

Есть список b, состоящий из нескольких строк. Нужно проверить содержится ли в каждой конкретной строке слово (например, ‘anton’). Должны быть буквы этого слова, не обязательно подряд (даже чаще не подряд — т.е. такая строка подходит: ‘asrngktnv5jonj’), но именно в этом порядке. В слове совпадают последняя и третья с конца буквы. В моей «изящной» конструкции такой код:

for i in range(len(b)): if ('a' in b[i] and 't' in b[i] and 'o' in b[i] and b[i].count('n') >= 2 and b[i].find('a') < b[i].find('n') < b[i].find('t') < b[i].find('o') < b[i].rfind('n')): print(i + 1, end=' ') 
  1. проверка на наличие букв тяжеловесная.
  2. код не работает - в тестах где в строках много разных символов этот код где-то находит искомое слово, а где-то не находит (хотя нужные буквы и нужной последовательности там имеются).

Отсюда два вопроса:

  • как проверить наличие букв в строке более компактно. Вообще, можно ли сделать конструкцию, в которой бы был список или кортеж из искомых символов и они искались в строке. Типа: if ('a', 'n', 't', 'o') in b - ?
  • как проверить располагаются ли эти символы в нужной последовательности? (помня, что в искомом слове есть еще две одинаковые буквы)?

P.S. что касается проверки, делал ее в том числе и через срезы, типа:

for i in b: while b[i] != 'a': b[i] = b[i][1:] count += 1 

перебирал нужные буквы, пока не находилась искомая я удалял первый символ строки. Когда буква находилась - к счетчику добавлял 1. В итоге при count = 5 условие выполнялось. Но, тут тоже результат нулевой.

Проверка слов в тексте

Через стандартный ввод подаётся следующая структура: первой строкой — количество d записей в списке известных слов, после передаётся d строк с одним словарным словом на строку, затем — количество l строк текста, после чего — l строк текста.

Напишите программу, которая выводит слова из текста, которые не встречаются в словаре. Регистр слов не учитывается. Порядок вывода слов произвольный. Слова, не встречающиеся в словаре, не должны повторяться в выводе программы.>

Решение которое работает:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
a = int(input()) b = [] for i in range(a): b.append(input().lower()) c = set(b) d = int(input()) e = [] for j in range(d): e.append(input().split()) m = set() for row in e: s = set(row) for v in s: m.add(v) f = [] for k in m: if k in c: continue else: f.append(k) for o in f: print(o)

но система не принимает ответ, говорит есть ошибка! Помогите мне бестолковому разобраться. что ей не нравится, и в чем может быть ошибка!

Добавлено через 1 минуту
вводится может строка, а может одно слово

1 2 3 4
for row in e: s = set(row) for v in s: m.add(v)

в этом месте я вроде учел это составляя множество

Добавлено через 1 минуту
чем больше я изучаю питон, тем сильнее он меня душит

Проверить наличие текста в строке

В коде ниже показаны два способа проверить наличие текста в строке:

text = "Python" # строка для поиска # 1-ый способ if "Python" in text: print("OK") # 2-ой способ — возвращает позицию в тексте text.find("th") # 2 # если указанный текст не обнаружен, метод find вернёт -1 

Регулярные выражения

Проверить наличие текста в строке через регулярные выражения можно через библиотеку re.

# Проверить наличие текста в строке через рег. выражения import re pattern = re.compile("(Python|Django)") if pattern.search(text): print("OK")

Узнать, по какому совпадению была найдена строка можно через метод group() .

import re pattern = re.compile("(Python|Django)") match = pattern.search(text) match.group() # возвращает первое совпадение — Python 

Начало и конец строки

Можно проверить совпадение строки в начале и в конце текста через функции startswith() и endswith() .

text = "Python" # Проверить, что строка начинается с заданной текстом if text.startswith("Critical error"): print("true") # Проверить, что строка заканчивается с заданной текстом if text.endswith("on"): print("true")

Обновлено: 01 ноября 2020 | История изменений

Комментарии

Авторизуйтесь, чтобы добавлять комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *