Анимация
JavaScript


Главная  Библионтека 

0 1 2 [ 3 ] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

3.1.2 Строки

Кроме чисел, Python также может работать со строками (string), которые могут быть записаны различными путями1. Они могут быть заключены в одинарные или двойные кавычки:

>>> spam eggs spam eggs >>> doesnXt "doesnt" >>> "doesnt" "doesnt"

>>> "Yes," he said.

"Yes," he said.

>>> "\"Yes,\" he said."

"Yes," he said.

>>> "Isn\t," she said.

"Isn\t," she said.

Длинные строковые выражения могут быть разбиты различными способами на несколько строк. Символ новой строки может быть "спрятан" с помощью обратной косой черты (\ ), например:

hello = "Это длинное строковое выражение, содержащее\n\ несколько строк текста, как Вы бы это сделали в C.\n\ Обратите внимание, что пробелы в\ начале строки\nимеют значение.\n" print hello

Результат будет следующим:

Это длинное строковое выражение, содержащее несколько строк текста, как Вы бы это сделали в С

1В настоящее время Python считает печатными 7-битное подмножество символов. Представление же остальных символов выводится с использованием управляющих последовательностей, что делает работу в интерактивном режиме, например, с русским языком неудобной. По этой причине текст в некоторых примерах данной книги оставлен без перевода.

4.1124999999999998 >>> print round( , 2) 4.11

Пользователь должен обращаться с ней как с переменной, доступной только для чтения. Не присваивайте ей значение явно - Вы создадите независимую локальную переменную с таким же именем, сделав встроенную переменную недоступной.



выведет следующее:

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

Интерпретатор выводит результат строковых операций в том же виде, в котором они могли бы быть набраны: в кавычках, обходя кавычки и другие специальные символы с помощью управляющих последовательностей, начинающихся с обратной косой черты (\). Текст заключается в двойные кавычки, если он не содержит двойные кавычки, во всех остальных случаях, он выводится в одинарных кавычках. Инструкция print, описанная ниже, может быть использована для вывода текста без кавычек и специальных последовательностей.

Существует также "необрабатываемый" режим ввода строк, задаваемый с помощью буквы r или R перед кавычками: в этом случае символ обратной косой черты также может быть использован для маскировки символов одинарной и двойной кавычек, если им предшествует нечетное число символов обратной косой черты, однако сам символ обратной косой черты остается частью строки. Даже в таком режиме строка не может заканчиваться нечетным количеством символов обратной косой черты. Необрабатываемый режим наиболее полезен в тех случаях, когда необходимо вводить значительное количество символов обратной косой черты, например, в регулярных выражениях.

Строки можно объединить (склеить) с помощью оператора + и размножить оператором * :

>>> word = Help + A

>>> word

HelpA

>>> < + word*5 + > <HelpAHelpAHelpAHelpAHelpA>

Две строки, записанные друг за другом, автоматически объединяются. Первая строка в приведенном примере может быть также записана как word = Help A.

TI TI TI

Обратите внимание, что пробелы в начале строки имеют значение.

По-другому, текст может быть заключен в утроенные кавычки: """ или Концы строк не нужно "прятать" при использовании утроенных кавычек, но они будут включены в текст.

print """

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to



Такой метод работает только для строк записанных непосредственно, но не для произвольных строковых выражений.

>>> str ing # Правильно

string

>>> str.stripO + ing # Правильно string

>>> str.stripO ing # Ошибка

File "<stdin>", line 1 str.stripO ing

SyntaxError: invalid syntax

Строка - последовательность символов с произвольным доступом, Вы можете получить любой символ строки по его индексу. Подобно C, первый символ имеет индекс 0. Нет отдельного типа для символа, символ - это просто строка единичной длины. Подобно Icon, подстрока может быть определена с помощью среза - двух индексов, разделенных двоеточием.

>>> word[4]

>>> word[0:2]

>>> word[2:4] lp

Строки в языке Python невозможно изменить. Попытка изменить символ в определенной позиции или подстроку вызовет ошибку:

>>> word[0] = x Traceback (innermost last):

File "<stdin>", line 1, in ? TypeError: object doesnt support item assignment >>> word[:-1] = Splat Traceback (innermost last):

File "<stdin>", line 1, in ? TypeError: object doesnt support slice assignment

Индексы среза имеют полезные значения по умолчанию: опущенный первый индекс считается равным 0, опущенный второй индекс дает такой же результат, как если бы он был равен длине строки.

>>> word[:2] # Первые два символа He

>>> word[2:] # Вся строка, кроме первых двух символов lpA



0 1 2 [ 3 ] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145