Вычитка · Шаг 2 из 4
Замечания по строке
Сердце вычитки: взять строку текста и сказать, что с ней не так и в каком месте. Корректор правит по месту, поэтому «где-то в этой строке» его не устраивает — нужен столбец.
Что сделать
Скажите корректору, что не так в строке и в каком именно месте.
Что приходит
stroka— строка текстаpravila— список пар(готовый шаблон, сообщение)
Что вернуть
Список замечаний {"stolbec": …, "nashlos": …, "chto": …} по возрастанию столбца, столбец — с единицы; в одном столбце — в порядке правил.
Допишите функцию proverit_stroku в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Утилита зовёт proverit_stroku для каждой строки файла и печатает замечания с номером строки и столбца. Решите шаг — и вычитка начнёт находить опечатки.
В «В номере тихо» правило «два пробела подряд» срабатывает дважды: со 2-го знака и с 10-го. Каждое попадание — своё замечание с куском " ".
import re
pravila = [(re.compile(r"\s{2,}"), "два пробела подряд")]
proverit_stroku("В номере тихо", pravila)
[{'stolbec': 2, 'nashlos': ' ', 'chto': 'два пробела подряд'}, {'stolbec': 10, 'nashlos': ' ', 'chto': 'два пробела подряд'}]
Функция принимает строку текста и список правил.
Правило — пара: готовый шаблон и сообщение.
Возвращает список замечаний. Замечание — словарь с тремя ключами: «stolbec» — номер знака, с которого начинается найденное, считая с единицы; «nashlos» — сам найденный кусок текста; «chto» — сообщение правила. Одно правило может сработать в строке несколько раз — каждое попадание даёт своё замечание. Замечания идут по возрастанию столбца. Если в одном столбце сработало несколько правил, между собой они идут в порядке правил. Если замечаний нет, возвращается пустой список.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.