Kodomo

Пользователь

ДЗ 6

  • Во всех программах должны быть содержательные имена переменных
  • Во всех программах не должно быть строк длиннее 75 символов, а если такие строки возникли, части таких строк нужно выносить в отдельные переменные или функции.
  • Функции должны сопровождаться docstring
  • Тело любой функции должно иметь длину не более 10 строк

  • Программа не должна содержать (в разумных пределах) дублирования кода

Вот здесь https://bitbucket.org/dendik/confetti обитает репозиторий с примерами, которые мы делали в классе.

  1. (6 баллов) Напишите программу, которая открывает файл text.txt, читает из него текст, токенизирует (т.е. бьёт по пробелам и удаляет из токенов заведомо непригодные символы1), и записывает по одному токену в строку в файл tokens.txt

  2. (8 баллов) Аналогично задаче 1, но при этом программа должна делить токен, содержащий в себе символы пунктуации, на несколько отдельных токенов. (Без вложенных циклов не обойтись).

  3. (8 баллов) Аналогично задаче 1, но при этом программа добавляет удалённые с краёв слов символы в качестве отдельных токенов.

  4. (10 баллов) То же, что делает задача 2 или 3 (на выбор), но при этом программа перед токеном пишет его позицию в файле (номер символа) и вдобавок, хранит токены как объекты класса Token, который нужно для этого определить, и в котором реализованы все действия с токенами.

Подсказка: задачи 1 и 2 гораздо проще решать, не используя классов.

  1. Возьмите корпус, разбейте его по пробелам, и посмотрите на выдачу. Вы увидите, что у ~10% слов есть прилипшие знаки пунктуации или какая-то ещё ерунда. Вот это и есть заведомо непригодные символы. (1)