Кодировка и локализация

Домашнее задание

  1. {i} /!\ А ГДЕ прочитать разумное про кодировки?

  2. Вывести на стандартный вывод файл, изначально заданный в кодировке CP866

    • Это можно сделать прямо из командной строки так: python -c 'print file("treplo-cp866.txt").read().decode("cp866").encode("utf8")'

  3. Ввести слово (например, "Вопрос"), перевести его сначала из текущей кодировки в юникод, затем в кодировку "CP1251", затем обратно в юникод, считая, что кодировка была "KOI8-R", вывести результат (для Linux и для Windows, возможно, текущая кодировка будет разной)
    • Это тоже можно сделать из командной строки, хотя в файле всё выглядело бы покрасивее: python -c 'E="utf8"; print raw_input().decode(E).encode("cp1251").decode("koi8-r").encode(E);'

  4. Решить простую олимпиадную задачу (Олимпиада школьников «Ломоносов», отборочный этап, информатика, 2011-2012 учебный год):
    • Рассмотрим текст романа Л. Н. Толстого «Анна Каренина» (следует использовать электронную версию романа, находящуюся по адресу http://ejudge.ru/study/anna.txt; есть на этом вики). Словоформой назовем последовательность латинских или русских букв. Словоформы ограничиваются символами, не являющимися латинскими или русскими буквами. В словоформах не различаются заглавные и строчные буквы и буквы е и ё. Например, Осел и осёл — это одна словоформа. Выпишите 10 наиболее часто встречающихся словоформ длиной 4 буквы в порядке уменьшения частоты их появления и для каждой словоформы укажите частоту ее появления. Словоформы должны быть выписаны строчными буквами, с буквой ё, преобразованной к букве е. Если несколько словоформ имеют равную частоту появления, они должны быть упорядочены по алфавиту (причем русские буквы идут раньше латинских). Обоснуйте свой ответ и приложите исходные тексты (например, тексты программ или электронные таблицы), использованные для получения ответа.

    • (упрощённый вариант) Без учёта требования сортировки русских и английских словоформ, имеющих одинаковую частоту появления
    • Проверочный файл с английским словом в ответе: annaE.txt

    • Решение с ручным разбором слов и построчным чтением из файла: anna_noRE.py

    • {*} Решение с обработкой регулярным выражением: anna.py

Условные обозначения


CategoryClass CategoryVmsh

LecturesVMSH/2012-01-18 (последним исправлял пользователь FrBrGeorge 2012-01-25 09:14:57)