ДЗ 6
- Во всех программах должны быть содержательные имена переменных
- Во всех программах не должно быть строк длиннее 75 символов, а если такие строки возникли, части таких строк нужно выносить в отдельные переменные или функции.
- Функции должны сопровождаться docstring
Тело любой функции должно иметь длину не более 10 строк
- Программа не должна содержать (в разумных пределах) дублирования кода
Вот здесь https://bitbucket.org/dendik/confetti обитает репозиторий с примерами, которые мы делали в классе.
(6 баллов) Напишите программу, которая открывает файл text.txt, читает из него текст, токенизирует (т.е. бьёт по пробелам и удаляет из токенов заведомо непригодные символы1), и записывает по одному токену в строку в файл tokens.txt
(8 баллов) Аналогично задаче 1, но при этом программа должна делить токен, содержащий в себе символы пунктуации, на несколько отдельных токенов. (Без вложенных циклов не обойтись).
(8 баллов) Аналогично задаче 1, но при этом программа добавляет удалённые с краёв слов символы в качестве отдельных токенов.
(10 баллов) То же, что делает задача 2 или 3 (на выбор), но при этом программа перед токеном пишет его позицию в файле (номер символа) и вдобавок, хранит токены как объекты класса Token, который нужно для этого определить, и в котором реализованы все действия с токенами.
Подсказка: задачи 1 и 2 гораздо проще решать, не используя классов.
Возьмите корпус, разбейте его по пробелам, и посмотрите на выдачу. Вы увидите, что у ~10% слов есть прилипшие знаки пунктуации или какая-то ещё ерунда. Вот это и есть заведомо непригодные символы. (1)