Анимация
JavaScript
|
Главная Библионтека >>> velocity = 0.0, 1.0, 1.0 >>> print vector(Bектор скорости, velocity) Вектор скорости: x = 0.0 y = 1.0 z = 1.0 namel = exprl [, ... ] Передача именованных аргументов. nameN - идентификаторы (имена) аргументов, exprN - их значения. Порядок следования именованных аргументов не имеет значения. *seq Передача списка (seq) позиционных аргументов. Позиционные аргументы, переданные обычным способом, дополняются элементами последовательности (любого типа) seq. Такой способ передачи позиционных аргументов доступен, начиная с версии 1.6. лять объект, поддерживающий доступ к атрибутам. Если атрибут attr объекта primary не доступен, генерируется исключение AttributeError. primary[key] Операция получения элемента по индексу/ключу, характерная для последовательностей и отображений (см. разделы 11.2 и 11.3). primary [slice list] Операция получения подпоследовательности по срезу. Последовательности встроенного типа поддерживают лишь простую запись среза (slice list) в виде [start]: [stop] (где start - нижняя и stop - верхняя границы). Расширенная запись (используется, например, в модулях расширения Numerical Python) позволяет указать через запятую несколько срезов вида [start ]: [stop][: [step]] (step - шаг) или использовать троеточие (...). Например: x[1:10:2], x[:10, ...], x[5:, ::2]Расширенная запись среза представляется с помощью специальных объектов slice и ellipsis, описанных в разделе 11.8.3. primary (arg list) Операция вызова. Встроенные типы, поддерживающие вызов, перечислены в разделе 11.4. arg list - список (через запятую) аргументов, которые могут быть переданы следующими способами (Вы можете использовать сразу несколько способов, однако порядок их следования в списке аргументов должен быть таким, в котором они здесь перечислены (exprN - произвольные выражения): exprl [, ... ] Простой способ передачи позиционных аргументов. Благодаря автоматической упаковке/распаковке кортежей, Вы можете использовать (только при таком способе передачи аргументов) подсписки аргументов: >>> def print vector(s, (x, y, z)): >>> print s+: >>> print x = , x >>> print y = , y >>> print z = , z 10.2.3 Арифметические и битовые операторы Ниже приведены все арифметические и битовые операторы в порядке уменьшения их приоритета. Операторы с одинаковым приоритетом объединены в группы. x ** y Оператор возведения в степень имеет больший приоритет, чем унарный арифметический или битовый оператор слева, но меньший, чем унарный арифметический или битовый оператор справа (во избежание нелепых ошибок использование оператора not справа от любого арифметического или битового оператора не допускается). Так, например, выражение -x ** -y будет вычисляться справа налево, то есть эквивалентно выражению -(x ** (-y)). +x, -x, ~x x * y, x / y, x%y x + y, x - y x << y, x >> y x & y x y x y 10.2.4 Условные операторы Все условные операторы (операторы сравнения, проверки идентичности и вхождения) имеют одинаковый приоритет (больший, чем у логических операторов). Кроме того, условные операторы могут быть записаны в цепь, например, выражение x < y <= z интерпретируется так же, как это принято в математике, и эквивалентно x < y and y <= z, за исключением того, что y вычисляется только один раз (но в обоих случаях z не вычисляется, если выражение x < y ложно). Заметим, что конструкции типа a < b > c вполне допустимы, однако выглядят довольно неприятно (сравнение между a и c не производится). Операторы != и <> полностью эквивалентны, использование первого предпочтительнее. **dict Передача словаря (diet) именованных аргументов. Именованные аргументы, переданные обычным способом, дополняются записями из словаря dict. Такой способ передачи именованных аргументов доступен, начиная с версии 1.6. Операция вызова всегда возвращает значение (возможно None), если выполнение не было прервано (например, сгенерировано исключение). Идентичность Операторы is и is not проверяют идентичность объектов: являются ли операнды на самом деле одним и тем же объектом (сравниваются идентификаторы объектов; см. также описание функции id() в разделе 12). x is y 1 , если x и y ссылаются на один и тот же объект, иначе 0 . 1 Возможны ситуации, при которых objl < obj2 и obj2 < obj3, но objl > obj3, например, если один из объектов является экземпляром, для которого не определен метод cmp (). Сравнение x < y 1 , если x меньше y, иначе 0 . x <= y 1 , если x меньше или равен y, иначе 0 . x > y 1 , если x больше y, иначе 0 . x >= y 1 , если x больше или равен y, иначе 0 . x == y 1 , если x равен y, иначе 0 . x <> y x != y 0, если x равен y, иначе 1. <> и != - две альтернативные формы записи одного оператора, вторая форма предпочтительнее. Операторы сравнения работают со всеми типами данных. Вы можете сравнивать объекты разного типа. Переменные численных типов равны, если равны их значения. Если Вы сравниваете обычную строку и строку Unicode, к обычной строке сначала применяется встроенная функция unicode() (считается, что строка имеет кодировку ASCII, если обычная строка содержит символы с кодом больше 127, генерируется исключение UnicodeError). Для экземпляров классов может быть определен специальный метод cmp () (иногда также будет полезен метод rcmp () , см. раздел 11.6.3), который будет использоваться для реализации операторов <, <=, >, >=, ==, != (<>), в том числе, и с объектами других типов (следует помнить, что перед выполнением операций сравнения производится попытка привести операнды к общему типу). Во всех остальных случаях производится проверка идентичности: объекты равны, только если они являются одним и тем же объектом. Порядок следования при сортировке объектов, для которых не определена операция сравнения, определяется типом объектов и их идентификаторами1. 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 |