Не могу составить код для текста

В русскому языке, как правило, после букв Ж,Ч,Ш,Щ пишется И,А,У, а не Ы,Я,Ю. Проверить Заданный текст на соблюдение этого правила и исправить ошибки ( с учетом исключений: ПАРАШЮТ, БРОШЮРА, ЖЮРИ). Была идея просто запустить счетчик в тексте, но что-то не срослось. Потом я хотел решить через 'ord', но тоже ни черта не вышло. После хотел написать функцию, которая будет через цикл for выискивать ошибки, да вот не знаю как написать. Текст любой может быть. Можно просто где-то найти да вставить в переменную и не париться)


Ответы (1 шт):

Автор решения: Zhihar

почему бы не применить алгоритм:

  1. найти буквы Ж, Ч, Ш, Щ
  2. посмотреть буквы после них и если они входят в множество "Ы Я Ю" и не являются словом-исключением - выдать ошибки или исправления

если в лоб:

word = "шыпчики"

is_error = False

for letter in ['ж', 'ч', 'ш', 'щ']:
    for index in range(len(word)):
        if word[index] == letter and index < len(word) - 1 and word[index + 1] in ['ы', 'ю', 'я']:
            is_error = True

print("Ошибка" if is_error else "Норма")

можно зайти с регулярного входа:

import re

word = "шыпчики"

result = re.findall(r'[жчшщ][ыюя]', word)

print("Ошибка" if len(result) else "Норма")

это и покороче и поудобнее

→ Ссылка