Python/Справочник по языку Python 3.1: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 152:
 
Физические строки, это последовательности символов, оканчивающиеся последовательностью конца строки. В исходных файлах могут использоваться стандартные для разных вычислительных платформ последовательности конца строки - в Unix ASCII символ перевода строки LF (linefeed), в Windows - последовательность ASCII символов CR LF (возврат каретки, за которым стоит символ перевода строки), или использовавшийся ранее на Macintosh символ перевода каретки CR (return). Любой из этих вариантов может использоваться равноправно, вне зависимости от текущей вычислительной платформы.
<!--
 
При отдельном использовании Python, строки исходного кода должны передаваться в Python API с использованием стандартных соглашений языка C для символов перевода строки (символ \n, представляющий ASCII LF, является признаком конца строки).
When embedding Python, source code strings should be passed to Python APIs using the standard C conventions for newline characters (the \n character, representing ASCII LF, is the line terminator).
2.1.3. Comments¶
 
=== Комментарии ===
A comment starts with a hash character (#) that is not part of a string literal, and ends at the end of the physical line. A comment signifies the end of the logical line unless the implicit line joining rules are invoked. Comments are ignored by the syntax; they are not tokens.
2.1.4. Encoding declarations¶
 
Комментарий начинается с символа "решетка" (#), который не является частью строки, и заканчивается концом физической строки. Комментарий является также концом строки, кроме
If a comment in the first or second line of the Python script matches the regular expression coding[=:]\s*([-\w.]+), this comment is processed as an encoding declaration; the first group of this expression names the encoding of the source code file. The recommended forms of this expression are
случаев неявного использования правила объединения строк. Комментарии игнорируются синтаксическим анализатором и не являются токенами.
 
=== Задание кодировки ===
 
Если комментарий в первой или второй строке скрипта Python соответствует регулярному выражению coding[=:]\s*([-\w.]+), то этот комментарий обрабатываться как объявление кодировки; первая группа этого выражения задает кодировку исходного текста. Рекомендуемые формы этого выражения:
 
# -*- coding: <encoding-name> -*-
 
whichкоторая isтакже recognized also byраспознается GNU Emacs, andи
 
# vim:fileencoding=<encoding-name>
 
whichкоторая is recognized byраспознается Bram Moolenaar’s VIM.
 
Если объявление кодировки не было найдено, то по умолчанию используется кодировка UTF-8. Кроме того, если первые байты файла являются UTF-8 byte-order mark (b'\xef\xbb\xbf'), то для файла выбирается кодировка UTF-8 (это поддерживается, среди прочего, блокнотом от Microsoft).
 
Если кодировка задана, то название кодировки должно быть распознано Python. Кодировка используется на этапе лексического анализа, в том числе для последовательностей символов (строк), комментарии и идентификаторы. Название кодировки должно содержаться в той же строке, в которой происходит задание кодировки.
 
=== Явное объединение строк ===
 
Две или более физических строк могут быть объединены в логическую строку с использованием символа обратной косой черты (\)
<!--
 
If no encoding declaration is found, the default encoding is UTF-8. In addition, if the first bytes of the file are the UTF-8 byte-order mark (b'\xef\xbb\xbf'), the declared file encoding is UTF-8 (this is supported, among others, by Microsoft’s notepad).
 
If an encoding is declared, the encoding name must be recognized by Python. The encoding is used for all lexical analysis, including string literals, comments and identifiers. The encoding declaration must appear on a line of its own.
2.1.5. Explicit line joining¶