Вход/Регистрация
Язык программирования Python
вернуться

Сузи Роман Арвиевич

Шрифт:

Следует отметить, что для Python созданы также модули для работы с естественными языками, а также для лингвистических исследований. Хорошим учебным примером может служить nltk (the Natural Language Toolkit).

Стоит отметить проект PyParsing (сайт:http://pyparsing.sourceforge.net), с помощью которого можно организовать обработку текста по заданной грамматике.

Строки

Строки в языке Python являются типом данных, специально предназначенным для обработки текстовой информации. Строка может содержать произвольно длинный текст (ограниченный имеющейся памятью).

В новых версиях Python имеются два типа строк: обычные строки (последовательность байтов) и Unicode–строки (последовательность символов). В Unicode–строке каждый символ может занимать в памяти 2 или 4 байта, в зависимости от настроек периода компиляции. Четырехбайтовые знаки используются в основном для восточных языков.

Примечание:

В языке и стандартной библиотеке за некоторыми исключениями строки и Unicode–строки взаимозаменяемы, в собственных приложениях для совместимости с обоими видами строк следует избегать проверок на тип. Если это необходимо, можно проверять принадлежность базовому (для строк и Unicode–строк) типу с помощью isinstance(s, basestring).

При использовании Unicode–строк, следует мысленно принять точку зрения, относительно которой именно Unicode–представление является главным, а все остальные кодировки — лишь частные случаи представления текста, которые не могут передать всех символов. Без такой установки будет непонятно, почему преобразование из восьмибитной кодировки называется decode (декодирование). Для внешнего представления можно с успехом использовать кодировку UTF–8, хотя, конечно, это зависит от решаемых задач.

Кодировка Python–программы

Для того чтобы Unicode–литералы в Python–программе воспринимались интерпретатором правильно, необходимо указать кодировку в начале программы, записав в первой или второй строке примерно следующее (для Unix/Linux):

Листинг

# -*- coding: koi8–r -*-

или (под Windows):

Листинг

# -*- coding: cp1251 -*-

Могут быть и другие варианты:

Листинг

# -*- coding: latin–1 -*-# -*- coding: utf–8 -*-# -*- coding: mac–cyrillic -*-# -*- coding: iso8859–5 -*-

Полный перечень кодировок (и их псевдонимов):

Листинг

>>> import encodings.aliases

>>> print encodings.aliases.aliases

{'iso_ir_6': 'ascii', 'maccyrillic': 'mac_cyrillic',

'iso_celtic': 'iso8859_14', 'ebcdic_cp_wt': 'cp037',

'ibm500': 'cp500', …

Если кодировка не указана, то считается, что используется us–ascii. При этом интерпретатор Python будет выдавать предупреждения при запуске модуля:

Листинг

sys:1: DeprecationWarning: Non–ASCII character '\xf0' in file example.py

on line 2, but no encoding declared;

seefor details

Строковые литералы

Строки можно задать в программе с помощью строковых литералов. Литералы записываются с использованием апострофов ', кавычек " или этих же символов, взятых трижды. Внутри литералов обратная косая черта имеет специальное значение. Она служит для ввода специальных символов и для указания символов через коды. Если перед строковым литералом поставлено r, обратная косая черта не имеет специального значения (r от английского слова raw, строка задается «как есть»). Unicode–литералы задаются с префиксом u. Вот несколько примеров:

Листинг

s1 = «строка 1»

s2 = r'\1\2'

s3 = ""«apple\ntree»"" # \n — символ перевода строки

s4 = ""«apple

tree»"" # строка в утроенных кавычках может иметь внутри переводы строк

s5 = '\x73\65'

u1 = u»Unicode literal»

u2 = u'\u0410\u0434\u0440\u0435\u0441'

Примечание:

Обратная косая черта не должна быть последним символом в литерале, то есть, «str\" вызовет синтаксическую ошибку.

Указание кодировки позволяет применять в Unicode–литералах указанную в начале программы кодировку. Если кодировка не указана, можно пользоваться только кодами символов, заданными через обратную косую черту.

Операции над строками

К операциям над строками, которые имеют специальную синтаксическую поддержку в языке, относятся, в частности конкатенация (склеивание) строк, повторение строки, форматирование:

Листинг

>>> print «A» + «B», «A»*5, "%s» % «A»

AB AAAAA A

В операции форматирования левый операнд является строкой формата, а правый может быть либо кортежем, либо словарем, либо некоторым значением другого типа:

Листинг

>>> print "%i» % 234

  • Читать дальше
  • 1
  • ...
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: