Назад | Python 3 учебник | Вперёд
В Python существуют следующие типы операций:
- Арифметические операции
- Операции сравнения
- Операции присваивания
- Битовые операции
- Логические операции
- Операции идентификации
- Операции проверки членства
В этой статье все примеры будет проверять в интерпретаторе командной строки python3, который вы можете установить в Debian с помощью команды sudo apt-get install python3.
Арифметические операции
Операции сложения +, вычитания -, умножения * и деления / работают вполне ожидаемо.
Операция % работает несколько иначе аналогичной операции в Java, так как она реализует modulo operation, но для положительных чисел результат одинаков.
В самом синтаксисе языка Python существует операция возведения в степень **:
1 2 3 4 5 6 7 8 9 |
$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 2 **3 8 >>> 4 ** 2 16 >>> |
Также в Python существует операция деления с округлением к наименьшему ближайшему целому числу //:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 9 // 2 4 >>> 9.0 // 2.0 4.0 >>> 13 // 3 4 >>> 13.0 // 3.4 3.0 >>> -5.1 // 2.0 -3.0 >>> - 4.1 // 2.0 -3.0 >>> - 4.0 // 2.0 -2.0 |
Операции сравнения
Операции сравнения == (равенство), != (неравенство), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно) работают аналогично C-подобным языкам программирования, а также аналогично операциям сравнения в Java. Обратите внимание, что для сравнения используется не знак равенства =, а два знака равенства, так как в C- подобных языках один знак равенства используется для операции присваивания.
Примеры использования:
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 |
$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 20 == 30 False >>> 20 == 20 True >>> 20 != 30 True >>> 20 != 20 False >>> 20 > 30 False >>> 30 > 20 True >>> 20 < 30 True >>> 30 < 20 False >>> 30 >= 20 True >>> 20 >= 20 True >>> 19 >= 20 False >>> 30 <= 20 False >>> 20 <= 20 True >>> 19 <= 20 True >>> |
Операции присваивания
В Python существует операция присваивания нового значения переменной =, которая присваивает переменной в левой части значения выражения из правой части:
1 2 3 4 5 6 7 |
$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> x = 999 >>> print (x) 999 |
Также в Python есть сокращённые операции присваивания:
- +=. Пример: x += y. Работает аналогично x = x + y.
- -=. Пример: x -= y. Работает аналогично x = x - y.
- *=. Пример: x *= y. Работает аналогично x = x * y.
- /=. Пример: x /= y. Работает аналогично x = x / y.
- %=. Пример: x %= y. Работает аналогично x = x % y.
- **=. Пример: x **= y. Работает аналогично x = x ** y.
- //=. Пример: x //= y. Работает аналогично x = x // y.
Пример:
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 |
$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> x = 3 >>> print(x) 3 >>> x += 2 >>> print(x) 5 >>> x -= 1 >>> print(x) 4 >>> x *= 2 >>> print(x) 8 >>> x /= 3 >>> print(x) 2.6666666666666665 >>> x %= 2 >>> print(x) 0.6666666666666665 >>> x **= 3 >>> print(x) 0.2962962962962961 >>> x //= 3 >>> print(x) 0.0 >>> x = 4 >>> x //= 2.1 >>> print(x) 1.0 >>> x = 4 >>> x //= 1.9 >>> print(x) 2.0 >>> |
Битовые операции
Битовые операции работают так же, как и в большинстве других языков. в Python поддерживаются: & (битовое И), | (битовое ИЛИ), ^ (битовое ИСКЛЮЧАЮЩЕЕ ИЛИ), ~ (унарный префиксный операнд, инвертирует биты), << (битовый сдвиг влево), >> (битовый сдвиг вправо). Если вы понимаете двоичную систему исчисления и представление чисел в них, то проблем возникнуть не должно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> x = 5 >>> y = 6 >>> print(x & y) 4 >>> print(x | y) 7 >>> print(x ^ y) 3 >>> print(~x) -6 >>> print(x<<2) 20 >>> print(x>>2) 1 |
Логические операции
Логические операции and (логическое И), or (логическое ИЛИ), not (логичесткое НЕ) работают вполне предсказуемо, как и в Java, только для обозначения используются английские слова, вместо двух символов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> x = true Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'true' is not defined >>> x = True >>> y = False >>> print (x and y) False >>> print (x or y) True >>> print(not(x)) False |
Операции тождественности
Операция тождественности is возвращает True, если оба операнда указывает на один и тот же объект. Есть обратная операция is not.
Операция проверки членства
Операция проверки членства in и in not проверяют, является ли ли операнд слева членом последовательности, указанной в правой части операции.
Приоритет операций
В Python операции имеют разный приоритет. Вычисление результата выражений осуществляется в соответствии со следующими приоритетами:
- **
- ~ + —
- * / % //
- + —
- >> <<
- &
- ^ |
- <= < > >=
- <> == !=
- = %= /= //= -= += *= **=
- is is not
- in not in
- not or and