Анимация
JavaScript
|
Главная Библионтека Вхождение Еще два условных оператора - in и not in - предназначены для определения, является ли объект элементом последовательности (или любого другого контейнера) и подробно описаны в разделе 11.2. x in y 1 , если y содержит элемент, который при сравнении (оператор ==) оказывается равным x, иначе 0 . x not in y 1 , если y не содержит элемента равного x, иначе 0 . 10.2.5 Истинность Для любого объекта можно проверить его истинность при использовании в инструкциях if и while или в качестве операнда логических операторов, описанных ниже. Следующие значения считаются ложью: • None; • ноль любого числового типа, например, 0, 0L, 0.0, 0j; • пустая последовательность, например, , (), []; • пустое отображение (словарь) - {} ; • экземпляр класса, для которого определен метод nonzero () или len () , если он возвращает ноль. Дополнительную информацию об этих специальных методах Вы можете получить в разделе 11.6.3. Все остальные значения считаются истинными - так что многие объекты всегда истинны. 10.2.6 Логические операторы Ниже приведены логические операторы в порядке уменьшения приоритета. Заметим, что оператор not имеет меньший приоритет, чем арифметические и условные операторы. То есть not a == b интерпретируется как not ( a == b) , а выражение a == not b является синтаксической ошибкой. x is not y 0 , если x и y ссылаются на один и тот же объект, иначе 1 . 10.2.7 Оператор lambda lambda param list: expression Короткая форма создания (безымянной) функции, возвращающей значение выражения expression. Ее поведение аналогично поведению функции, созданной с помощью инструкции def name( param list ): return expression . Синтаксис списка параметров описан в разделе 10.4.5. Обратите внимание, что функция, создаваемая с помощью оператора lambda, не может содержать инструкций. Кроме того, lambda-функция (как и функция, определенная с помощью инструкции def ) не имеет доступа к локальному пространству имен блока, в котором она определена. Однако Вы можете обойти это ограничение, используя аргументы, имеющие значения по умолчанию, например: def make incrementor(increment): return lambda x, n=increment: x+n lambda имеет наименьший приоритет среди операторов, однако его приоритет больше чем у конструкции, образующей список выражений. Так, например, выражение lambda: 1, 2 эквивалентно выражению (lambda: 1), 2 и образует кортеж из двух элементов: функции, возвращающей 1 , и числа 2 . 10.2.8 Списки выражений Список выражений (аргументов) образуется путем перечисления выражений (идентификаторов) через запятую. Списки аргументов функции и выражений, образующий кортеж, может содержать завершающую запятую, однако она не имеет никакого значения, за исключением одного случая: завершающая запятая необходима для образования кортежа, содержащего один элемент (см. раздел 11.2.3). Использование завершающей запятой в списке аргументов инструкций, кроме инструкции print, не допускается. Завершающая запятая в списке аргументов инструкции print указывает на то, что не нужно выводить символ перехода на новую строку (см. раздел 10.3.5). Операторы or и and всегда возвращают один из своих операндов. Причем второй операнд операторов or и and вычисляется, только если это необходимо для получения результата. not x Если x ложно, то 1 , иначе 0 . x and y Если x ложно, то x, иначе y. x or y Если x ложно, то y, иначе x. Простые инструкции записываются в одну логическую строку. Логическая строка может содержать несколько простых инструкций разделенных точкой с запятой. 10.2.9 Сводная таблица приоритетов Ниже перечислены все конструкции и операторы, которые могут быть использованы для создания выражений, в порядке уменьшения приоритета. Конструкции, перечисленные в одном пункте, имеют одинаковый приоритет. 1. Атомы: идентификаторы, литеральные и "замкнутые" ( (expression . . . ), [expression ...], {key: value ...}, expression) выражения. 2. Первичные выражения: x. attribute, x[key], x[slice list], x(arg list). 3. ** (см. замечания в разделе 10.2.3). 4. Унарные операторы +, - и ~. 5. *, /, %. 6. Бинарные операторы + и -. 7. <<, >>. 8. &. 9. 10. . 11. Условные операторы: <, <=, >, >=, ==, !=, <>, is [not], [not] in. 12. not. 13. and. 14. or. 15. lambda. 16. exprl, ... (образование списка выражений). 10.3 Простые инструкции 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 |