Анимация
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

11.1.5 Битовые операции над целыми числами

Для простых и длинных целых чисел в языке Python определены битовые операторы. Приоритет у всех бинарных битовых операторов ниже, чем у арифметических, и выше, чем у операторов сравнения. Унарный оператор ~ имеет такой же приоритет, как и унарные арифметические операторы (+ и -).

Ниже приведены все битовые операторы:

x y

Битовое ИЛИ x и y.

x y

Битовое исключающее ИЛИ x и y.

x & y

Битовое И x и y.

x << n

Биты x, сдвинутые на n влево, эквивалентно умножению на 2**n без контроля переполнения. Сдвиг на отрицательное число бит не допускается (генерируется исключение ValueError).

x >> n

Биты x, сдвинутые на n вправо, эквивалентно (целочисленному) делению на 2** n без контроля переполнения. Сдвиг на отрицательное число бит не допускается (генерируется исключение ValueError).

Биты x инвертированные.

x / y

Частное x и y. Если оба операнда целые (простые или длинные), то результат тоже будет целым. Результат всегда округляется в меньшую сторону: 1/2 и -1/-2 даст 0, а -1/2 и 1/-2 даст -1.

x % y

Остаток от деления x на y.

x с противоположным знаком.

x (без изменений).

x ** y

x в степени y.

Кроме того, для работы с числами Python предоставляет встроенные функции abs(), divmod() и pow() (см. главу 12), а также более сложные функции, определенные в модуле math.



В языке Python есть пять встроенных типов последовательностей: string, unicode, tuple, xrange, buffer и list.

Ниже приведены операции, определенные для всех последовательностей. Операторы in и not in имеют такой же приоритет, как и операторы сравнения, а операторы + (бинарный) and * - такие же, как и соответствующие арифметические операторы2. Выражения s и t - последовательности одинакового3 типа, n, i и j - целые.

len( s)

Возвращает число элементов последовательности s. x in s

1 , если элемент x содержится в последовательности s, иначе - 0 . x not in s

0 , если элемент x содержится в последовательности s, иначе - 1 s+t

Объединение последовательностей s и t .

s*n n*s

n копий последовательности s объединенных вместе. Отрицательные значения n воспринимаются как 0 (что дает пустую последовательность такого же типа, как и s).

s += t

s *= t

Эквивалентно s = s + t и s = s * n соответственно, но, если s является изменяемой последовательностью, то выполнение операции будет производиться без создания нового объекта, то есть переменная s будет ссылаться на один и тот же объект до и после операции.

s[i]

1 -й элемент последовательности s, отсчет начинается с 0 . Если индекс i имеет отрицательное значение, отсчет ведется с конца, то есть подставляется len( s) + i . Однако -0 означает 0 . Если индекс i указывает за пределы последовательности, генерируется исключение IndexError.

s[ [i ]:[j ]]

Срез последовательности s от i до j - подпоследовательность, содержащая элементы последовательности s с такими индексами к, которые удовлетворяют неравенству i <= к < j. Если i или j имеет отрицательное значение, отсчет ведется с конца, то есть подставляется len(s) + i или len(s) + j. Индексы i и j могут быть опущены: i по умолчанию равен 0, j - sys.maxint. Если (после всех преобразований) первый индекс больше или равен второму, возвращается пустая последовательность.

2Это необходимо, так как синтаксический анализатор не может определить тип операндов. 3 Последовательности, определяемые пользователем, могут не иметь этого ограничения.

11.2 Последовательности



11.2.1 Строки

В этом разделе описаны свойства обычных строк. Однако они в основном характерны и для строк Unicode.

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

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

В строках можно использовать следующие управляющие последовательности:

Последовательность

Представляемый символ

\newline

Игнорируется (newline - символ новой строки).

Символ обратной косой черты (\ ).

Одинарная кавычка ().

\"

Двойная кавычка (").

Символ оповещения (BEL).

Символ возврата на одну позицию (backspace, BS).

Символ подачи страницы (formfeed, FF).

Символ перехода на новую строку (linefeed, LF).

Символ возврата каретки (CR).

Символ горизонтальной табуляции (TAB).

Символ вертикальной табуляции (VT).

\ooo

ASCII символ с восьмеричным кодом, равным ooo.

\xhh...

ASCII символ с шестнадцатеричным кодом, равным hh....

В соответствии со стандартом С, в последних двух управляющих последовательностях воспринимается до трех восьмеричных цифр и неограниченное количество шестна-

Для работы с последовательностями также могут быть полезны встроенные функции min() и max() (см. главу 12).



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